
经常爬着爬着就返回意外或者报错了,而且出现意外的点不止一处,难以预测,全都套 try 有点多。
对 python 的错误处理不大了解,有什么精炼的应对方法嘛?至少出了错能出点声或者发个邮件啥的。
有人指点一下嘛?
1 jugelizi 2018-10-27 17:31:46 +08:00 观察者 监听一下多久没反应就告警呗 |
2 Trim21 2018-10-27 17:55:39 +08:00 via Android try: start_spider() except: beep() |
3 JCZ2MkKb5S8ZX9pq OP @Trim21 这么粗放的嘛…… |
4 lhx2008 2018-10-27 18:29:32 +08:00 你这样 try 就没有问题啊 try: try: except: ... throw Exception try: except: ... throw Exception try: except: ... throw Exception try: except: ... throw Exception try: except: ... throw Exception except: beep() |
5 misaka19000 2018-10-27 18:59:45 +08:00 via Android print("\a") |
6 ninestep 2018-10-27 20:57:07 +08:00 首先,经常出错你就得检查一下你的代码了,如果是固定的一些地方出错,那就加异常捕获把,如果是随机出错,那就写个进程守护就好了嘛,supervisord 好像有邮件报警的功能 |
7 serical 2018-10-27 21:11:59 +08:00 via Android mac 调起 shell say xxx |
8 JCZ2MkKb5S8ZX9pq OP @ninestep 现在就是错一次打一点补丁,但就是经常过了几个小时才想起来看一眼。 |
9 ysc3839 2018-10-27 21:55:08 +08:00 via Android 简单的话可以 print 一个 bell 字符,终端一般会响。 复杂的话根据平台发送通知。Python 应该有现成的库。 |
10 JCZ2MkKb5S8ZX9pq OP @misaka19000 这个第一次知道,666。加了一秒延迟,无限循环了。 |
11 billiepander 2018-10-27 22:25:23 +08:00 用 supervisor autorestart 它吧 |
12 scriptB0y 2018-10-27 22:40:31 +08:00 sentry, systemd 不过最靠谱的还是碰到问题 LOG 下来,或者写到 csv 里面,程序继续跑。 后面根据出错的日志将错误的信息重新搞一下。 |
13 JCZ2MkKb5S8ZX9pq OP @scriptB0y 我是爬取同时就清洗了,另外有分析程序实时就输出结果了,所以会遇到一些意外情况。 有时候是返回意外情况,有时候是对方程序员数据库里写错类型,或者还会有蜜罐之类的。 如果是死活不管先都爬下来,另外跑一个清洗流程,倒是可以。 但也会碰到相应的弊端,比如爬到错误内容而没有及时察觉。 |
14 cnit 2018-10-28 14:22:54 +08:00 用 server 酱 |