Scrapy 批量获取URL以及进一步拔取网页链接数据

xiaoxiao2021-02-28  102

做网页爬虫,最经常碰到的问题就是需要一层一层的拔取网页上的链接和数据,网络上的方法大都是自己做一个URL的列表,然后逐个爬取。Scrapy官方文档给出了较好的解决方法,使用方便,同时效率也很高,代码简洁。

Scrapy版本:1.4.0

Python版本:   2.7

这里以爬取搜房网二手房数据为例进行说明:

(1)首先也是第一步,就是设置爬虫的域名和staru_url

allowed_domains = ['esf.fang.com'] start_urls = ['http://esf.fang.com/'] (2)分析网页结构,

比如我的目标是安装区域进行数据爬取,那我就要获取一组链接,而不是一个一个的获得,推介使用Scrapy Shell工具进行初步的网页解析。

Scrapy Shell 'http://esf.fang.com/'

用Xpath获取目标列表:

Region_list = response.xpath('//*[@id="list_D02_10"]/div[1]/a/@href').extract() 是一个List类型的数据,这样就获取了一组链接,注意,这里的Region_list不是完整的URL,下一步就是使用Scrapy的函数,逐个的对链表中的url进行获取: for url in Region_list: yield response.follow(url,callback=self.region_parse,errback=self.Error_info)这里的region_parse()和Error_info是需要自己定义的函数,具体的就是要爬取的内容和出错后要运行的函数。

这里需要注意的是使用的函数是Response.follow而不是Response.Request,否则会出错的。

转载请注明原文地址: https://www.6miu.com/read-27257.html

最新回复(0)