解读错误信息就可以定位错误。
Traceback (most recent call last):
这是错误的跟踪信息。
File "XXX.py", line 13, in <module>
f3('0')
调用f3()出错了,错误出现在文件XXX.py的第13行代码,错误来源第9行:
File “XXX.py”, line 12, in f3
return f2(s)+1
调用f2()出错了,错误出现在文件XXX.py的第12行代码,错误来源第8行:
== File “XXX.py”, line 8, in f2 ==
return f1(s)+1
调用f1()出错了,错误出现在文件XXX.py的第8行代码,错误来源第4行:
==File “XXX.py”, line 4, in f1 ==
return 1 / int(s)
return 1 / int(s)出错了,找到了错误的源头。
== ZeroDivisionError: division by zero==
这是错误类型。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
原因
当用快速爬取某网站出现经常出现Traceback (most recent call last):的错误,也就是连接失败。原因首先是快速爬取连接时网络不稳定造成的。
一般解决方案:
加入判断函数
def getHTMLText(url):
maxTryNum = 20
for tries in range(maxTryNum):
try:
kv = {"user-agent": "Mizilla/5.0"}
response = requests.get(url, headers=kv, timeout=10)
return response.text
except:
if tries < (maxTryNum - 1):
continue
else:
print("Has tried %d times to access url %s, all failed!" % (maxTryNum, url))
break