2012-07-06 73 views
8

我正在尝试在Scrapy中设置自定义下载器中间件类。我怀疑我错过了一些显而易见的事情,但我已经阅读过几次文档,但没有找到解决办法。我对某件极其简单的任务感到有些沮丧,因此希望有人能够为我提供一些见解。无法在Scrapy中定义自定义下载器中间件

我已将以下行添加到我的settings.py文件中。

DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.TestDownloader': 400 } 

添加该行并运行该项目后,我得到了关于模块中间件不存在的错误。经过一番调查后,我发现您需要将文件添加到middlewares文件夹中以供Python识别。我这样做,和我现在得到以下错误:

NameError: Module 'myproject.middlewares' doesn't define any object named 'TestDownloader' 

的TestDownloader.py文件不被编译,而项目中的所有其他* .py文件的。如果我理解我的Python正确读取,这意味着它不会被导入到任何地方,但我无法找到任何其他Scrapy设置来更改以使其工作。

回答

17
DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.TestDownloader': 400 } 

对于这项工作,创建文件middlewares.pymyproject文件夹内,并在该文件把你下载的中间件类称为TestDownloader

或有middlewares文件夹__init__.py里面,你可以把放称为TestDownloader__init__.py您下载的中间件类 - 这应该工作了。

+1

是的,我从来不会想到一个非常简单的解决方案。谢谢。 – Jared 2012-07-06 18:55:57

相关问题