我正在尝试使用scrapy构建一个刮板,我计划使用deltafetch来启用增量刷新,但我需要解析基于javascript的页面,这也是我需要使用splash的原因。在settings.py文件中,我们需要添加SPIDER_MIDDLEWARES = {'scrapylib.deltafetch.DeltaFetch': 100,} for enabling deltafetch whereas, we need to add SPIDER_MIDDLEWARES = {'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,} for splash
我想知道,如果它们都使用某种爬虫中间件,它们将如何协同工作。
有没有什么方法可以让我同时使用它们呢?
发布于 2018-05-17 00:24:18
有关其他答案,请参阅here和here。本质上,您可以使用请求元参数来手动设置正在发出的请求的deltafetch_key。通过这种方式,您可以使用Splash请求相同的页面,即使您已经使用Scrapy成功地从该页面中抓取了项目,反之亦然。希望这能有所帮助!
from scrapy_splash import SplashRequest
from scrapy.utils.request import request_fingerprint
(your spider code here)
yield scrapy.Request(url, meta={'deltafetch_key': request_fingerprint(response.request)})
https://stackoverflow.com/questions/49299469
复制相似问题