2013-07-28 35 views
2

所有內運行,從另一個位置scrapy履帶,試圖腳本

我想完全自動刮我的,這是由3個步驟構成:

1獲得索引頁的列表廣告(非scrapy工作中,由於種種原因) 2 - 獲取在步驟一(Scrapy工作)

我scrapy項目是在平時的目錄中獲得的索引頁廣告的URL列表:

ç :\ Python27 \ Scripts中\ GetAdUrlsFromIndex_project \ GetAdUrlsFromIndex \蜘蛛\ GetAdUrls_spider.py (以下簡稱 「GetAdUrls_spider」 文件中的蜘蛛的名稱爲(名稱= 「getadurls」))

我的腳本來自動化步驟1和2是在此目錄中:

C:\ Website_DATA \腳本\ StepByStepLauncher.py

我已經使用Scrapy文檔導入履帶和使用下面的代碼從腳本內運行的嘗試:

from twisted.internet import reactor 
from scrapy.crawler import Crawler 
from scrapy.settings import Settings 
from scrapy import log 
from GetAdUrlsFromIndex.spiders.GetAdUrls_spider import getadurls 

spider = getadurls(domain='website.com') 
crawler = Crawler(Settings()) 
crawler.configure() 
crawler.crawl(spider) 
crawler.start() 
log.start() 
reactor.run() # the script will block here 

I K當我嘗試不幸地運行這個腳本時,我得到了錯誤「沒有名爲GetAdUrlsFromIndex.spiders.GetAdUrls_spider的模塊」。我嘗試將工作目錄更改爲幾個不同的位置,我用名字玩弄,似乎沒有任何工作..

希望有任何幫助..謝謝!

+1

是'C:\ Python27 \腳本\ GetAdUrlsFromIndex_project \你的''PYTHONPATH'? – twil

+0

嗨Twil ...我其實沒有一個PYTHONPATH變量!我創建了一個並添加了這個,但仍然不起作用... –

+0

文件夾'GetAdUrlsFromIndex'和'spiders'是否包含'__init __。py'? – twil

回答

0

如果你確實有C:\Python27\Scripts\GetAdUrlsFromIndex_project\GetAdUrlsFromIndex__init__.pyC:\Python27\Scripts\GetAdUrlsFromIndex_project\GetAdUrlsFromIndex\spiders然後嘗試修改腳本這樣

import sys 
from twisted.internet import reactor 
from scrapy.crawler import Crawler 
from scrapy.settings import Settings 
from scrapy import log 

sys.path.append('C:/Python27/Scripts/GetAdUrlsFromIndex_project') 
from GetAdUrlsFromIndex.spiders.GetAdUrls_spider import getadurls 

spider = getadurls(domain='website.com') 
crawler = Crawler(Settings()) 
crawler.configure() 
crawler.crawl(spider) 
crawler.start() 
log.start() 
reactor.run() # the script will block here 
+0

謝謝!這做到了! –

+0

不客氣。如果你有'No module named ...',它基本上是'PYTHONPATH'的問題,並且可以通過這種方式「治癒」。 PS:接受答案的方式;) – twil

+0

剛剛接受,謝謝! –