我在~/portia/slyd/data/projects/scrap
设置中设置了一个portia scrapy项目,以便在DOWNLOADER_MIDDLEWARES中使用scrap.middlewares.RandomUserAgentMiddleware
,RandomUserAgentMiddleware
中定义了~/portia/slyd/data/projects/scrap/middlewares.py
。
部署项目后,生成的鸡蛋不包含middlewares.py
,因此我收到此错误:
ImportError: Error loading object 'scrap.middlewares.RandomUserAgentMiddleware': No module named scrap.middlewares
如何告诉scrapyd-deploy采用自定义中间件?
编辑:
我的settings.py
就是:http://pastebin.com/8gFU3YEw
我也尝试在生成的鸡蛋中手动包含middlewares.py
,但它没有解决它,仍然是同样的错误。
答案 0 :(得分:0)
它们应放在settings.py文件中。应声明DOWNLOADER_MIDDLEWARES变量,其中包含要使用的自定义中间件列表。这里有一个应该涵盖你案例的例子:
DOWNLOADER_MIDDLEWARES = {
'scrap.middlewares.RandomUserAgentMiddleware': 5,
}
更多信息可以在official scrapy documentation。
中找到