您的位置:首页 > 编程语言 > Python开发

scrapy抓取免费代理IP

2017-07-10 11:33 531 查看
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、项目文件结构



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定义爬取的逻辑



打开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文件




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



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



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






11、最后得到alive.txt文件存放可用的代理结果,至此结束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  代理 爬虫 python