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文件存放可用的代理结果,至此结束
时间: 2024-10-16 22:02:14