scrapy错误:response.follow()方法时出现AttributeError: 'HtmlResponse' object has no attribute 'follow'

时间:2018-02-09 15:13:17作者:scrapy中文网阅读:

出现这么一个scrapy错误,果断的查看scrapy版本,命令行输入:
scrapy
如果下面的版本是scrapy1.4以下的,那赶紧升级吧,这个方法是scrapy1.4以上才具备的方法,因此需要升级一下,当然,你也可以使用另外一种方式:
yield scrapy.Request()
以上方法就不挑版本了,当然之所以scrapy会有这么一个方法:response.follow(),是应为它的确好用,他能把相对路径转换为绝对路径,你就能少写一行代码,如:

scrapy.Request()写法:
for href in response.css('li.page a::attr(href)').extract():
    url = response.urljoin(href)
    yield scrapy.Request(url, self.parse, encoding=response.encoding)

response.follow()写法(scrapy1.4+):

for a in response.css('li.page a'):
    yield response.follow(a, self.parse)