Hat*_*sut 2 python twisted scrapy
我想要一个中间件,它将接受一个请求并将其转换为两个不同请求的生成器。据我所知,下载器中间件process_request()方法只能返回单个请求,而不是它们的生成器。有没有一种好的方法可以将任意请求拆分为多个请求?
看起来蜘蛛中间件process_start_requests实际上是在通过下载器发送请求之后发生的。start_requests例如,如果我设置start_urls = ['https://localhost/']并且
def process_start_requests(self, start_requests, spider):
yield Request('https://stackoverflow.com')
Run Code Online (Sandbox Code Playgroud)
ConnectionRefusedError尝试请求但失败后,它将失败并显示localhost。
我不知道将请求(在发送之前)转换为多个请求背后的逻辑是什么,但您仍然可以从中间件生成多个请求(甚至项目),如下所示:
def process_request(self, request, spider):
for a in range(10):
spider.crawler.engine.crawl(
Request(url='myurl', callback=callback_method),
spider)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1278 次 |
| 最近记录: |