2016-07-29 108 views
0

我對scrapy有點新,而且我被困在一個點上。我想在關閉時重新啓動蜘蛛。Scrapy隨後抓取多個蜘蛛

我想在這裏實現的是我從數據庫中獲取URL我以我每次發送「scrapy crawl xyz」請求的方式編寫我的視圖start_request將獲得一個URL [下一個URL]與前一個數據庫請求中傳遞的內容不同。

問題是如果數據庫中有四個URL我需要運行「scrapy crawl xyz」4次,但我想避免這種情況,並且我試圖在當前「spider_closed」獲取「scrapy crawl xyz」時觸發叫在蜘蛛的盡頭。請幫助

回答

0

如果您想在一個腳本中抓取多個蜘蛛 - 您可能想從腳本運行蜘蛛。見official docummenation on how to do that

要在在文檔中提供的示例擴大,你的應該是這個樣子:

process.crawl(MySpider) 
process.start() 
process.crawl(MySpider2) 
process.start() 
process.crawl(MySpider3) 
process.start() 
+0

感謝Granitosaurus但我不想要運行多個蜘蛛,我試圖在這裏當它從第一個URL完成抓取數據時再次運行相同的蜘蛛 – vrnair

+0

在這種情況下,您只需要在添加MySpider.start_urls屬性之前更新它。順便說一下,爲什麼不啓動蜘蛛時,將多個url傳遞給start_requests呢? – Granitosaurus

+0

雖然將多個URL一起傳遞,但我正在從連接對等和「twisted.python.failure.failure類'openssl.ssl.error'」重置,但同時當我一次抓取這些鏈接時,它們將被抓取沒有任何錯誤 – vrnair

0

嗨,大家好,我發現我的問題的問題。我想同時運行相同的scrapy命令。所以我做的是在linus中創建我自己的命令,然後把我的scrapy抓取xyz到一個循環中,並且工作。

!/斌/慶典

因爲我在seq 1 3 做 scrapy爬Taleo公司