scrapy抓取免费代理IP

简介:

1、创建项目

scrapy startproject getProxy

2、创建spider文件,抓取www.proxy360.cn www.xicidaili.com两个代理网站内容

cd项目的spiders模块下执行

scrapy genspider proxy360Spider proxy360.cn

scrapy genspider xiciSpider xicidaili.com

scrapy shell http://www.proxy360.cn/Region/China

scrapy shell http://www.xicidaili.com/nn/2

执行结果发现proxy360.cn response 返回200,西刺网返回500需要修改一下默认的请求头参数

3、项目文件结构

wKiom1li7cDwXvtKAABRQfsmN0g893.jpg-wh_50

4、需要修改settings文件的user agent通过浏览器代理抓取

USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTML, like Gecko)'

5、打开items文件,定义需要爬取的字段

scrapy


(scrapy.Item):
    ip = scrapy.Field()
    port = scrapy.Field()
    type = scrapy.Field()
    location = scrapy.Field()
    protocol = scrapy.Field()
    source = scrapy.Field()

6、打开proxy360Spider定义爬取的逻辑

wKiom1li9p2BzQAHAADFdplxcSM862.jpg

打开xiciSpider定义西刺网爬取的逻辑

scrapy
sys
sys.path.append()
items GetproxyItem
__author__=(scrapy.Spider):
    name = allowed_domains = []
    wds = []
    pages = start_urls = []
    type wds:
        i (pages + ):
            start_urls.append(+ type + + (i))
    (response):
        subSelector = response.xpath()
        items = []
        sub subSelector:
            item = GetproxyItem()
            item[] = sub.xpath().extract()[]
            item[] = sub.xpath().extract()[]
            item[] = sub.xpath().extract()[]
            sub.xpath():
                item[] = sub.xpath().extract()[]
            :
                item[] = sub.xpath().extract()[]
            item[] = sub.xpath().extract()[]
            item[] = items.append(item)
        items

7、定义爬取结果,数据处理层pipelines

分别将proxy360网站的数据存到prox360.txt文件

西刺网的爬取数据存到xicidaili.txt文件

wKiom1li9uXw5BPQAADXzoU8TtA886.jpg

8、打开settings里面关于pipelines的定义

wKioL1li9xyx-IecAAAcSamXeTs064.jpg

9、在spiders模块下分别执行,生成抓取的文本内容

scrapy crawl proxy360Spider

scrapy crawl proxy360Spider

wKiom1li88CwJetRAACw5yoesQg665.jpg-wh_50

10、爬取结果到此结束,但是并不是每一个代理都是可用的,所以需要我们再去验证一下,过滤出来可用的代理,getProxy模块下创建proxy文件获取可用代理

wKiom1li96OSjcqrAACfYFfWHkM224.jpg

wKiom1li96TR6DHaAACBOoHgxyM205.jpg

11、最后得到alive.txt文件存放可用的代理结果,至此结束










本文转自 无心低语 51CTO博客,原文链接:http://blog.51cto.com/fengzhankui/1945849,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
数据采集 数据处理 Python
使用Scrapy框架抓取小红书上的#杭州亚运会#相关内容
使用Scrapy框架抓取小红书上的#杭州亚运会#相关内容
|
8月前
|
数据采集 存储 数据可视化
如何使用Scrapy框架抓取电影数据
如何使用Scrapy框架抓取电影数据
|
10月前
|
数据采集 Python
使用 asyncio 提升 Scrapy 爬虫框架的异步编程效能,并集成代理功能
异步编程在现代软件开发中扮演着越来越重要的角色,特别是在网络爬虫等需要处理大量 I/O 操作的场景中。本文将介绍 asyncio 这个强大的异步编程库,并探讨如何在 Scrapy 爬虫框架中充分利用 asyncio 提升爬虫的效率和灵活性。此外,还将介绍如何集成爬虫代理功能,进一步提高爬虫的效率和稳定性。
141 0
使用 asyncio 提升 Scrapy 爬虫框架的异步编程效能,并集成代理功能
|
Python
Scrapy添加代理验证
Scrapy添加代理验证
70 0
Python之scrapy的post请求、日志和代理
Python之scrapy的post请求、日志和代理
Python之scrapy的post请求、日志和代理
|
Python
Requests 和 Scrapy 添加动态IP代理
Requests 和 Scrapy 添加动态IP代理
332 0
|
数据采集 JSON API
新手教程 | Python Scrapy框架HTTP代理的配置与调试
做过python爬虫的都知道,HTTP代理的设置时要在发送请求前设置好,那HTTP代理的逻辑点在哪里呢?实际上,只需要在Scrapy 的项目结构中添加就好
新手教程 | Python Scrapy框架HTTP代理的配置与调试
|
Python
Scrapy添加代理验证
Scrapy添加代理验证
60 0
|
Python
Scrapy添加代理验证
Scrapy添加代理验证
111 0
|
数据采集 存储 Web App开发
使用 Scrapy 建立一个网站抓取器
Scrapy 是一个用于爬行网站以及在数据挖掘、信息处理和历史档案等大量应用范围内抽取结构化数据的应用程序框架,广泛用于工业。 在本文中我们将建立一个从 Hacker News 爬取数据的爬虫,并将数据按我们的要求存储在数据库中。
200 0
使用 Scrapy 建立一个网站抓取器