2013-03-19 21 views
2

運行scrapy我開始進入蟒蛇,是的,我已經搜索這個網站和網頁的答案,但不知何故,我真的不能讓它運行。從腳本(初級)

我創建了一個spiderclass EbaySpider,居住在蜘蛛/ ebay.py,我可以從命令行啓動沒有問題(甚至輸出到一個JSON文件)。現在我想從另一個.py文件中啓動scrapy,因此我可以直接訪問抓取的數據並將其輸出到GUI(稍後會考慮如何操作)。

我已經採取了代碼this question(在提問者的代碼,因爲我並不需要多次運行蜘蛛),並加入

from spiders import ebay 
from scrapy.crawler import CrawlerProcess 

的開頭,手邊一切必要的資源。

我得到的錯誤是

ImportError: cannot import name ebay.

當然,我已經與importstatement發揮各地,從「易趣」到'EbaySpider不斷變化的,不斷變化的「蜘蛛」到「spiders.ebay」或「項目名稱。 spiders.ebay',但不知何故,他們似乎沒有工作。

這將是巨大的,如果你能告訴我如何解決這個問題,或者另一種方式來運行的蜘蛛,然後讓我的Python程序中訪問抓取的數據。我很高興與任何工作,是可以理解的一半:)

感謝的人!

回答

0

基本上,你有三種選擇;

  • 安裝「蜘蛛」目錄作爲一個模塊在您的PYTHONPATH
  • 把「ebay.py」文件在同一目錄作爲腳本,只是import ebay
  • 修改你的Python路徑,以便Python可以找到你的蜘蛛。

對於第三個選項,您必須在spiders目錄中創建一個文件__init__.py。它可以是空的。然後,你必須修改你的腳本如下(假設spiders是你的程序運行的目錄的子目錄):在

import os 
import sys 
sys.path.append(os.getcwd()+'/spiders') 
print sys.path 
from spiders import ebay 
+0

將其複製到同一目錄中可以快速修復,謝謝! – SGer 2013-03-19 23:56:58

0

你可以試試蟒relative import功能,相對於你的python腳本的目錄中導入模塊。您無法導入模塊的原因是因爲spiders模塊不是您的PYTHON_PATH

from .spiders import ebay

注:spiders

+0

結果「ValueError異常:非包嘗試相對進口」 – SGer 2013-03-19 20:47:43

+1

相對進口只工作在包裝中。 – 2013-03-19 20:51:32