2015-07-20 73 views
0

我試圖從django項目運行scrapy蜘蛛時,當用戶發出請求,所以我目前正在測試代碼從scrapy docs從腳本運行蜘蛛。爲了測試如何將蜘蛛導入到django項目中,我將一個文件添加到放置scrapy蜘蛛的相同目錄(即urls,settings和wsgi文件所在的目錄)中的django項目中。當我嘗試導入函數以從蜘蛛文件運行爬網程序進程時,出現導入錯誤。這是我使用的說法:當試圖導入scrapy蜘蛛到django時導入錯誤

from trydjango18.ticket_city_scraper.ticket_city_scraper.ticket_city_scraper.spiders.tc_spiders import spiderCrawl 

這看起來很模糊,所以我有一個下面的文件路徑的屏幕截圖。導入spider.py文件的正確方法是什麼?

文件路徑與scrapy蜘蛛 enter image description here

文件路徑與測試文件 enter image description here

UPDATE 我能得到的蜘蛛從腳本運行;但是,現在我正在從項目模塊的spiders文件中獲取另一個導入錯誤。我認爲這很可能是因爲只有spiders.py的路徑被添加到腳本中,而不是其他必需的模塊。這是我使用的語句(以及代碼從腳本的其餘部分):

import imp 
tc_spider = imp.load_source('tc_spider', '/home/elijah/Desktop/trydjango18/src2/trydjango18/trydjango18/ticket_city_scraper/ticket_city_scraper/spiders/tc_spider.py') 


bandname = raw_input("Enter bandname") 
tc_spider.spiderCrawl(bandname) 
+0

注意使用'imp。load_source('tc_spider','/home/elijah/Desktop/trydjango18/src2/trydjango18/trydjango18/ticket_city_scraper/ticket_city_scraper/spiders/tc_spider.py')'使您的腳本環境相關。 –

+0

@ErnestTen它將如何與環境無關 – loremIpsum1771

+0

您不應該在項目目錄之上使用任何東西。 –

回答

1

,我可以看到有2個錯誤:

  1. 有額外ticket_city_scraper在您的路徑。

    應該是:

    from trydjango18.ticket_city_scraper.ticket_city_scraper.spiders.tc_spiders import spiderCrawl 
    
  2. 沒有tc_spiders.py

    要麼加tc_spiders.py要麼從tc_spider.py進口。

考慮到你問

的spider.py文件

我假設你的意思是tc_spider.py,這樣一個完整的解決方案是:

from trydjango18.ticket_city_scraper.ticket_city_scraper.spiders.tc_spider import spiderCrawl 

而且確保:

  1. 每個包裝包含__init__.py
  2. tc_spiders.py/tc_spider.py包含模塊級功能spiderCrawl
+0

我剛剛對帖子的更新進行了更新,包括我得到的陳述以及我現在遇到的問題。如果我有一種方法可以導入導入整個scrapy文件夾等所有必需的模塊嗎?當我嘗試像蜘蛛文件一樣添加項目模塊的路徑時,錯誤沒有消失。感謝您的迴應btw – loremIpsum1771

+0

@ loremIpsum1771您可以[從包中導入'*'](https://docs.python.org/2/tutorial/modules.html#importing-from-a-package),但是,我會建議你顯式導入每個模塊。記住「_Explicit比implicit._好」。 –