scrapy 2.3 请求方法快捷方式
而不是执行 start_requests()
生成的方法 scrapy.Request
来自URL的对象,您只需定义 start_urls
具有URL列表的类属性。然后,此列表将由 start_requests()
要为您的蜘蛛创建初始请求,请执行以下操作:
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 = f'quotes-{page}.html'
with open(filename, 'wb') as f:
f.write(response.body)
这个 parse()
方法将被调用来处理这些URL的每个请求,即使我们没有明确地告诉Scrapy这样做。这是因为 parse()
是Scrapy的默认回调方法,对没有显式分配回调的请求调用该方法。