2013-08-01 76 views
1

嗨,大家好,我正在使用scrapy框架和python構建一個網絡抓取項目。 在我的項目的蜘蛛文件夾中,我有一個名爲spider1和spider2scrapy抓取[蜘蛛名]故障

spider1.py

class spider(BaseSpider): 
    name= "spider1" 
    ........ 
    ........ 

spider2.py

class spider(BaseSpider): 
    name="spider2" 
    ............ 
    ........... 

settings.py

SPIDER_MODULES = ['project_name.spiders'] 
NEWSPIDER_MODULE = ['project_name.spiders'] 
ITEM_PIPELINES = ['project_name.pipelines.spider'] 

現在兩隻蜘蛛當我在我的根項目文件夾中寫入命令scrapy crawl spider1時,它調用sp ider2.py代替spider1.py。當我將我從項目中刪除spider2.py然後調用spider1.py

早些時候1天回到了1個月,工作正常,但突然發生的事情,我不能弄明白請幫我傢伙

+0

當你重命名類,即將'class spider(BaseSpider):...'更改爲'class Spider1(BaseSpider):...'in spider1.py和'class Spider2(BaseSpider): .'在spider2.py中? –

+0

如果我在兩個蜘蛛中更改類名稱,則什麼都不會發生 –

+0

嘗試清除所有* .pyc文件和_ensure_,您已在「名稱」屬性中爲蜘蛛提供了不同的名稱。 –

回答

1

我解決了同樣的問題,但是從我的項目中的任何地方刪除所有* .pyc文件完成了這項工作。

特別是我認爲settings.pyc是很重要的刪除。

希望有所幫助。

1

建立在遊牧民的答案。 您可以通過添加避免所有,但在開發過程中一個PYC文件的創建:

import sys 
sys.dont_write_bytecode = True 

到項目的「__init__.py」文件。

這將阻止.pyc文件被創建。如果您正在處理一個項目並重命名蜘蛛的文件名,那麼這將特別有用。防止舊蜘蛛的緩存pyc和其他一些陷阱。