urllib3报错问题解决方法

2025-03-24 02:25:03

1、原始代码如下:import urllib3def download(url,num_retries=2): print('Downloading:',url) try: html = urllib3.urlopen(url).read() except urllib3.URLError as e: print('Downloading error:',e.reason) html = None if num_retries > 0: if hasattr(e,'code') and 500<=e.code<600: #recursively retry 5xx HTTP errors return download(url,num_retries-1) return htmldownload('http://httpstat.us/500')(注释:这段代码在urllib2中使用是没有问题的,换成urllib3使用报错如下:)

urllib3报错问题解决方法

2、结果就报错了:AttributeError: module 'urllib3' has no attribute 'urlopen'AttributeError: module 'urllib3' has no attribute 'URLError'

urllib3报错问题解决方法

3、原因是:urllib3将所有的urllib都打包为urllib所以代码应修改为:urllib.request修改后的代码如下:import urllib.requestdef download(url,num_retries=2): print('Downloading:',url) try: html = urllib.request.urlopen(url).read() except urllib.request.URLError as e: print('Downloading error:',e.reason) html = None if num_retries > 0: if hasattr(e,'code') and 500<=e.code<600: #recursively retry 5xx HTTP errors return download(url,num_retries-1) return htmldownload('http://httpstat.us/500')

urllib3报错问题解决方法

4、运行结果如下:完美解决问题

urllib3报错问题解决方法

5、如果对你有用话给过投个票呗!!!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢