2013-05-08 165 views
0

我正在使用scrapy抓取網頁中的信息。 我寫了可以正常工作的蜘蛛代碼。我還有一些其他的Python代碼文件可以細化抓取的數據。在批處理文件中使用scrapy抓取命令時繼續批處理腳本命令

把它放在一起,我有一個批處理文件,其中我首先使用「Scrapy Crawl」命令,然後運行我的python文件以優化抓取的信息。

問題是,批處理腳本在「Scrapy Crawl」命令的末尾停止,並且不會繼續執行批處理文件中的行。 我該如何解決這個問題?

批處理文件的內容:它們的執行結束後

CD "spiders_folder" 
scrapy crawl mySpider -o outputData.json -t json 
python refineData.py 
+0

誰是scrapy? – Endoro 2013-05-08 17:52:08

+0

什麼操作系統?大寫'CD'表明它是Windows的東西?我想'批處理文件'標籤已經意味着,只是爲了確保。 – Alfe 2013-05-08 17:53:19

+0

Scrapy是一個快速的高級別屏幕抓取和網頁爬行框架,用於抓取網站並從其頁面中提取結構化數據。 – programmingIsFun 2013-05-08 17:55:05

回答

3

批處理文件的邏輯來處理其他程序的子程序返回從那裏回原始批處理文件調用。 AFAICR規則的例外是如果一個批處理文件調用另一個批處理文件。在這種情況下,執行不是作爲子程序處理,而是交給另一個批處理文件。

除非您使用call來調用第二個批處理文件。

(我可能是錯誤的,這是大家很早就對我,所以請不要打我太用力,如果我錯了。)

如果我的猜測是正確的,這是原因你的麻煩,這是因爲scrapy本身就是一個批處理文件。然後,只需調用它是這樣的:

call scrapy crawl mySpider -o outputData.json -t json 
0

我不知道「scrapy」,但你可以嘗試:

start "" "scrapy" crawl mySpider -o outputData.json -t json 
0

只要您的批處理文件並沒有得到任何比這更復雜(沒有for循環等),然後把它放在批處理文件的頂部。

@setlocal enabledelayedexpansion 
+0

爲什麼'延遲擴展'?沒有代碼塊。 – Endoro 2013-05-08 18:03:31