2013-12-23 92 views
1

如何在我的scrapy项目中将定制蜘蛛中间件如何将自定义蜘蛛/下载中间件添加到scrapy

比方说,我想把this之一。作为documentation说,我加入

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

到settings.py中和从上面的链接中spider文件夹代码_init_.py

但我发现了:

ImportError: Error loading object 'myproject.middlewares.IgnoreVisitedItems': No module named middlewares

我试着this东西,但它没;吨工作。

这是我项目结构

enter image description here

我应该如何得到这个定制中间件的工作?我只需要一个广义方法来让它工作,而不是专门为这个项目。

+0

没有足够的信息来重新抓取他们,请分享你的目录结构,像'树myproject'在项目上父母会做 –

+0

@Guy添加了我的项目的树状结构。但我只需要一个通用的方法来为所有** Spider/Downloader中间件** – mrudult

+0

确定,哪个文件具有'IgnoreVisitedItems'类代码? –

回答

2

它似乎是你的目录结构没有一个叫middlewares文件作为您的项目settings.py文件称,此外,它似乎是你的项目名称为cnn,而不是myproject

,如果是这样的话,你就必须做两两件事:

  1. 创建middlewares.py文件,并把IgnoreVisitedItems它,把它放在同一个目录中items.py和pipelines.py
  2. 变化你设置SPIDER_MIDDLEWARES进入:

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

编辑:但是请注意,在大多数情况下scrapy会忽略默认访问请求,除非你强迫它使用Request's dont_filter parameter

+0

好吧,我知道我已经把'myproject'放在了任何地方。不过,谢谢它工作正常。 – mrudult