在scrapy中启用deltafetch

时间:2013-11-18 10:42:11

标签: python web-scraping scrapy

我曾在scrapy工作过一段时间,现在我准备好了蜘蛛。但是现在我希望我的蜘蛛只刮掉那些在之前的跑步中没被刮过的物品,并且只刮掉新的内容。通过实现这一点,我可以减少我的蜘蛛的运行时间。

在研究这个问题时,我遇到了deltafetch,我认为这符合我的要求。但我无法导入该功能。如果有任何机构可以指导我以明确的方式使用它,我会很高兴。

如果有任何其他中间件服​​务于类似目的,我也会有兴趣知道。

2 个答案:

答案 0 :(得分:4)

使用标准工具:

pip install scrapylib

然后将此项添加到项目settings.py:

SPIDER_MIDDLEWARES = {
    'scrapylib.deltafetch.DeltaFetch': 100,
}

DELTAFETCH_ENABLED = True

答案 1 :(得分:3)

deltafetch是scrapylib库的一部分,而不是默认的scrapy包,所以我认为这就是你无法导入它的原因。以下是我如何使用它:

首先在主项目模块(你的spiders目录,items.py等)中创建一个名为中间件的新目录。

然后在里面放一个空的__init.py__和来自github的deltafetch.py文件。

在你的settings.py中:

SPIDER_MIDDLEWARES = {
    'yourprojectname.middlewares.deltafetch.DeltaFetch': 100,
}

DELTAFETCH_ENABLED = True

有更多可用设置,但这些设置记录在DeltaFetch类的文档字符串中。希望有所帮助!