我正在尝试使用scrapy构建一个scraper,我计划使用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
我想知道如果两者都使用某种蜘蛛中间件,它们将如何协同工作。
我有什么方法可以同时使用它们吗?
答案 0 :(得分:0)
有关其他答案,请参阅here和here。基本上,您可以使用请求元参数手动为您正在进行的请求设置deltafetch_key。通过这种方式,即使您使用Scrapy成功从该页面中删除项目,您也可以使用Splash请求相同的页面,反之亦然。希望有所帮助!
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)})