首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在遇到第一个异常时使抓取中断并退出?

如何在遇到第一个异常时使抓取中断并退出?
EN

Stack Overflow用户
提问于 2012-03-02 06:06:51
回答 2查看 11.1K关注 0票数 22

出于开发目的,我希望在出现第一个异常(在爬行器或管道中)时立即停止所有抓取活动。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2013-04-23 11:30:45

在爬行器中,您可以只抛出CloseSpider异常。

代码语言:javascript
复制
def parse_page(self, response):
    if 'Bandwidth exceeded' in response.body:
        raise CloseSpider('bandwidth_exceeded')

对于其他(中间件、管道等),您可以手动调用close_spider,正如akhter所提到的。

票数 13
EN

Stack Overflow用户

发布于 2012-03-02 15:29:19

这完全取决于您的业务逻辑。但这对你来说是可行的

代码语言:javascript
复制
crawler.engine.close_spider(self, 'log message')

Suggested Reading

Suggested Reading

最糟糕的解决方案是

代码语言:javascript
复制
import sys

sys.exit("SHUT DOWN EVERYTHING!")
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9524923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档