为了账号安全,请及时绑定邮箱和手机立即绑定

在bash中检查scrapy结果

在bash中检查scrapy结果

冉冉说 2021-05-31 12:24:57
我有多个蜘蛛,我在 bash 脚本中运行,如下所示:pipenv run scrapy runspider -o output-a.json a.pypipenv run scrapy runspider -o output-b.json b.py由于他们应该运行很长时间,我想有一个简单的方法来监控他们的成功率;我的计划是在两个刮板都成功运行时(即它们没有任何错误消息)ping https://healtchecks.io。我已经assert在代码上撒了一些声明,以便对此充满信心。pipenv run scrapy runspider -o output-a.json a.pyresult_a=$?pipenv run scrapy runspider -o output-b.json b.pyresult_b=$?if [ $result_a -eq 0 && $result_b -eq 0]; then    curl $urlfi我的问题是,不管怎样,每个scrapy runspider命令总是返回0。这意味着我无法真正检查他们是否成功。有没有办法影响这种行为?我还没有找到一些命令行标志?如果没有,我将如何从 python 脚本运行这两个蜘蛛并将它们的输出保存到定义的位置?我找到了这个链接,但它没有提到如何处理退回的物品。
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

我最终解决这个问题的方法是将日志输出分配给一个变量并将其grepping 到ERROR: Spider error processing. Scrapy 有一个非常好的行为,即不会过早地失败;如果我自己退出 python 脚本,我就会失去它。这样我就可以一个接一个地运行一个scraper并最终处理错误,所以我仍然可以收集尽可能多的东西,同时在某些东西不能100%顺利运行的情况下得到通知。


查看完整回答
反对 回复 2021-06-22
  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号