16
A
回答
2
它純粹依賴於您的業務邏輯。但是這會爲你工作
crawler.engine.close_spider(self, 'log message')
和最壞的解決方案是
import sys
sys.exit("SHUT DOWN EVERYTHING!")
7
在蜘蛛,你可以隨便扔CloseSpider例外。
def parse_page(self, response):
if 'Bandwidth exceeded' in response.body:
raise CloseSpider('bandwidth_exceeded')
對於其他人(中間件,管道等),你可以手動調用close_spider提到akhter。
10
由於0.11,有CLOSESPIDER_ERRORCOUNT
:
一個整數,它指定在關閉蜘蛛之前接收錯誤的最大數目。如果蜘蛛生成的錯誤數量超過了這個數量,它將通過closespider_errorcount原因關閉。如果爲零(或未設置),則蜘蛛將不會按錯誤數量關閉。
如果它設置爲1
,那麼蜘蛛將在第一次例外時關閉。
+0
謝謝!我有同樣的問題,這對我有用。 – 2016-06-28 17:48:46
+3
它不適用於管道 – 2016-11-26 02:26:23
相關問題
- 1. 如何設置Scrapy並逐一抓取?
- 2. 如何正確取消Task.WhenAll並拋出第一個異常?
- 3. 解析SuperCsv/beanreader在第一行遇到異常並返回NULL
- 4. 如何抓取網站上給出的每一個環節,並使用scrapy
- 5. 如何在蜘蛛停止爬行或遇到異常後退出Scrapy Python腳本?
- 6. 退出時出現異常
- 7. 拋出異常時中斷
- 8. 如果引發任何異常如何有效地退出Python程序/抓到
- 9. 如何在發生第一次機會異常時使Visual Studio 2010中斷?
- 10. 在遇到異常時提前一個時間戳
- 11. 如何拋出異常並退出Haskell中的程序?
- 12. Scrapy:抓取但未抓取
- 13. 如何使用scrapy抓取網站?
- 14. 如何找出在Ruby中遇到什麼異常
- 15. 使用WPF退出時的COM異常
- 16. 從scrapy網站上抓取數據並輸出到javascript
- 17. 如何獲取服務在WCF中遇到的異常數量?
- 18. Scrapy - 不抓取
- 19. Scrapy不抓取
- 20. Scrapy只抓取一頁
- 21. Scrapy只抓取一頁
- 22. Python:使異常「退出」
- 23. 如何抓取scrapy中url的url?
- 24. 當我遇到異常時,如何在crashlog中留言?
- 25. 使用Scrapy抓取數據
- 26. boost :: thread interrupt()僅在第一次執行中斷點時拋出異常?
- 27. 如何在第一種方法中遇到異常時如何執行所有方法?
- 28. 如何讓一個子進程在收到SIGSEGV後異常退出?
- 29. Python線程捕捉異常並退出
- 30. Scrapy抓取歷史
在scrapy中捕捉蜘蛛異常的理想場所是什麼?謝謝 – 2017-07-17 14:34:53