#报错如下AttributeError:module'urllib3'hasnoattribute'urlopen'AttributeError:module'urllib3'hasnoattribute'URLError'
方法/步骤
1、原始代码如下:importurllib3defdownload(url,num_retrie衡痕贤伎s=2):print('Dow荏鱿胫协nloading:',url)try:html=urllib3.urlopen(url).read()excepturllib3.URLErrorase:print('Downloadingerror:',e.reason)html=Noneifnum_retries>0:ifhasattr(e,'code')and500<=e.code<600:#recursivelyretry5xxHTTPerrorsreturndownload(url,num_retries-1)returnhtmldownload('http://httpstat.us/500')(注释:这段代码在urllib2中使用是没有问题的,换成urllib3使用报错如下:)
2、结果就报错了:AttributeError:module'urllib3'hasnoattribute'urlopen'AttributeError:module'urllib3'hasnoattribute'URLError'
3、原因是:urllib3将所有的urllib都打包为urllib所以代码应修改为:urllib.r娣定撰钠equest值檄钕眇修改后的代码如下:importurllib.requestdefdownload(url,num_retries=2):print('Downloading:',url)try:html=urllib.request.urlopen(url).read()excepturllib.request.URLErrorase:print('Downloadingerror:',e.reason)html=Noneifnum_retries>0:ifhasattr(e,'code')and500<=e.code<600:#recursivelyretry5xxHTTPerrorsreturndownload(url,num_retries-1)returnhtmldownload('http://httpstat.us/500')
4、运行结果如下:完美解决问题
5、如果对你有用话给过投个票呗!!!