2012-07-06 38 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

相關問題