8

我正在尝试在 Scrapy 中设置自定义下载器中间件类。我怀疑我错过了一些明显的东西,但我已经阅读了几次文档并没有找到解决方案。我对本来应该是一项极其简单的任务感到有些沮丧,因此希望有人能够为我提供一些见解。

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

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

添加该行并运行项目后,我收到有关模块中间件不存在的错误。经过一番研究,我发现你需要在文件夹中添加一个__init__.py文件才能middlewares让 Python 识别它。我这样做了,现在出现以下错误:

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

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

4

1 回答 1

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

为此,请在文件夹middlewares.py内创建文件myproject,并在该文件中放置名为TestDownloader.

或者在里面有middlewares文件夹__init__.py,你可以把你的下载器中间件类TestDownloader放在里面__init__.py——这也应该工作。

于 2012-07-06T18:37:32.797 回答