在我爬取某网站时出现了该错误,但是只要重新运行一下程序还是请求成功。
我搜索了一下百度,没有发现类似的答案,不过在stackoverflow有类似的疑问。等会后面有链接。
可能出现这个问题的原因:这里执行urllib的read()函数时候,它会捕获任何不完整的读取异常。因此出现了报错。
我们可以不让它捕获异常,因此当读取链接的时候我们可以用try / catch来抛出异常。
我之前的一段代码,不完整。
request = urllib.request.Request('https://****.org/'+ url)
res = urllib.request.urlopen(request)
buffer = res.read() #这里
if os.path.isfile(r'E:\pythonxm\zhengze\%s.pdf'%(filename)):
print("已存在%s文件" %(filename))
i = i+1
continue
fo =open(filename+".pdf","wb+")
fo.write(buffer)
fo.close()
i = i+1
改过之后:
try: