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

做网页爬虫,最经常碰到的问题就是需要一层一层的拔取网页上的链接和数据,网络上的方法大都是自己做一个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,否则会出错的。



你可能感兴趣的:(网络爬虫)