如何添加自定义蜘蛛/下载中间件到scrapy

时间:2013-12-23 17:40:16

标签: python-2.7 scrapy

如何在我的scrapy项目中添加自定义蜘蛛中间件

假设我想要this一个。正如documentation所说,我添加了

SPIDER_MIDDLEWARES = { 'myproject.middlewares.IgnoreVisitedItems': 543,}  

到settings.py以及上面指向_init_.py文件夹中 spider的链接的代码。

但我得到了:

  

ImportError:加载对象'myproject.middlewares.IgnoreVisitedItems'时出错:没有名为middlewares的模块

我在this上尝试了一些事情,但事实并非如此。

这是我的项目结构

enter image description here

我应该如何使用这个自定义中间件?我只需要一个通用方法来使它工作,而不是专门针对这个项目。

1 个答案:

答案 0 :(得分:2)

您的目录结构似乎没有您在项目settings.py文件中引用的名为middlewares的文件,此外,您的项目名称似乎是cnn而不是{{1 }}

如果是这种情况,你将不得不做两件事:

  1. 创建middlewares.py文件并将IgnoreVisitedItems放入其中,将其放在与items.py和pipelines.py
  2. 相同的目录中
  3. 将您的设置myproject条目更改为:

    SPIDER_MIDDLEWARES = {'cnn.middlewares.IgnoreVisitedItems':543,}

  4. 编辑:但请注意,在大多数情况下,scrapy默认会忽略已访问的请求,除非您强制它使用Request's dont_filter parameter

    重新抓取它们