start_requests方法的快捷方式(4)python SCRAPY教程1.51以上版本
start_requests方法的快捷方式
您可以只使用URL列表定义类属性,而不是实现从URL start_requests()
生成scrapy.Request
对象的方法start_urls
。然后,默认实现将使用此列表start_requests()
来为您的spider创建初始请求:
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://quotes.toscrape.com/page/1/',
'http://quotes.toscrape.com/page/2/',
]
def parse(self, response):
page = response.url.split("/")[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
parse()
即使我们没有明确告诉Scrapy这样做,也会调用该方法来处理这些URL的每个请求。发生这种情况的原因parse()
是Scrapy的默认回调方法,在没有明确分配回调的情况下调用请求。