0

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

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

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

4

1 回答 1

0

有关其他答案,请参见此处此处。本质上,您可以使用请求元参数为您正在发出的请求手动设置 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)})
于 2018-05-16T16:24:18.073 回答