Udi*_*Udi 20 python exception scrapy
出于开发目的,我想在第一个异常(在蜘蛛或管道中)发生时立即停止所有scrapy爬行活动.
有什么建议?
tok*_*rev 13
从0.11开始,有CLOSESPIDER_ERRORCOUNT:
一个整数,指定关闭spider之前要接收的最大错误数.如果蜘蛛生成的错误数超过该数量,则将使用closespider_errorcount原因关闭它.如果为零(或未设置),则不会因错误数量而关闭蜘蛛.
如果设置为1,则蜘蛛将在第一个异常时关闭.
imw*_*nxu 11
在spider中,你可以抛出CloseSpider异常.
def parse_page(self, response):
if 'Bandwidth exceeded' in response.body:
raise CloseSpider('bandwidth_exceeded')
Run Code Online (Sandbox Code Playgroud)
对于其他人(中间件,管道等),您可以手动调用close_spider作为提到的akhter.
它完全取决于您的业务逻辑。但这对你有用
crawler.engine.close_spider(self, 'log message')
Run Code Online (Sandbox Code Playgroud)
最糟糕的解决方案是
import sys
sys.exit("SHUT DOWN EVERYTHING!")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8678 次 |
| 最近记录: |