无法在Scrapy中定义自定义下载中间件

Jar*_*red 8 python scrapy

我试图在Scrapy中设置一个自定义下载中间件类.我怀疑我错过了一些明显的东西,但我已经阅读了几次文档而没有找到解决方案.我对这应该是一项非常简单的任务感到有些沮丧,所以希望有人能够为我提供一些见解.

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

DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.TestDownloader': 400 }
Run Code Online (Sandbox Code Playgroud)

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

NameError: Module 'myproject.middlewares' doesn't define any object named 'TestDownloader'
Run Code Online (Sandbox Code Playgroud)

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

war*_*iuc 17

DOWNLOADER_MIDDLEWARES = { 'myproject.middlewares.TestDownloader': 400 }
Run Code Online (Sandbox Code Playgroud)

为此,middlewares.pymyproject文件夹内创建文件,并在该文件中调用您的下载中间件类TestDownloader.

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