deltafetch&飞溅在Scrapy(python)中一起使用

时间:2018-03-15 12:26:38

标签: scrapy scrapy-splash scrapinghub

我正在尝试使用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

我想知道如果两者都使用某种蜘蛛中间件,它们将如何协同工作。

我有什么方法可以同时使用它们吗?

1 个答案:

答案 0 :(得分:0)

有关其他答案,请参阅herehere。基本上,您可以使用请求元参数手动为您正在进行的请求设置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)})