RT,我写了一个爬虫,爬行的时候会偶尔报如图中的错误,请问这是不是网络问题?如果是的话我该怎么写这种失败重试机制?
(PS:我标题 里面说使用httplib库是因为我这个爬虫必须带上指定的cookie才可以请求到数据,如果有其他办法可以带上cookie发起http请求的话也可以不用httplib库)
RT,我写了一个爬虫,爬行的时候会偶尔报如图中的错误,请问这是不是网络问题?如果是的话我该怎么写这种失败重试机制?
(PS:我标题 里面说使用httplib库是因为我这个爬虫必须带上指定的cookie才可以请求到数据,如果有其他办法可以带上cookie发起http请求的话也可以不用httplib库)
递归调用自身进行retrycount来限制是一种最直接的方法。
但是有个问题:
如果对方地址只是暂时失败,比如重启服务了。立马重试还是失败,重试5次的时间很短,当对方服务好了之后这个请求就已经过掉了,因为重试了5次
我用的机制是 重试五次,分别等待30s 1分钟 10分钟 30分钟 1个小时 如果还是失败就认为确实失败了。
当然 这个用法是根据具体业务逻辑来做处理。不同的业务需求,对请求的要求也是不一样的。
15 回答8.4k 阅读
8 回答6.2k 阅读
3 回答2k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
谢天谢地我刚刚找到了解决方案
用python爬虫抓站的一些技巧总结 - Python - 伯乐在线http://python.jobbole.com/81997/ 原文在这里
原理是用一个retries变量存储重试次数,然后每次异常处理的时候就递归本身并且将重试次数-1,判断如果重试次数小于0就直接return并且打出失败日志