1、scrapy爬虫遇到一个问题,有时候会对一个网页重复爬取提取不同的数据,这时候会发现,后面的那个重复爬取scrapy直接终止了。
原因:
scrapy 的request逻辑里面 dont_filter=False,也就是重复网页不爬取,需要修改下这个参数
classscrapy.http.
Request
(url[, callback, method='GET', headers, body, cookies, meta, encoding='utf-8', priority=0, dont_filter=False, errback, flags, cb_kwargs])
解决办法:
Scrapy的官方文档:
http://doc.scrapy.org/en/latest/topics/request-response.html#scrapy.http.Request
Request函数在文档中的定义:
class scrapy.http.Request(url[, callback, method='GET', headers, body, cookies, meta, encoding='utf-8', priority=0, dont_filter=False, errback])
在这儿, request的 dont_filter 设置为True就可以了
也就是说
yield scrapy.Request(url=nexturl, callback=self.parse,dont_filter=True)
搞定