Instance of 'URLError' has no 'code' member

本想做个爬虫试一下,结果从老文档里学来的代码一直报错,URLError没有code成员,出于对老文献的信任,蒙蔽了半天。最后灵机一动选中URLError右键查看定义,才发现code被挪到HTTPError里面去了,终于真相大白,把URLError换成HTTPError就好了。
看来作为一个小白,以后还得提高勤于看库文件定义的姿势水平啊。

def download(url_,user_agent = 'asp',num_retries = 5):
    print("Downloading:",url_)    
    headers = {'User-agent':user_agent}    
    req = urllib.request.Request(url_, headers = headers)    
    try:        
    	html = urllib.request.urlopen(req).read()    
    except urllib.request.URLError as e:        
    	print("DownloadError!",e.reason)        
    	html = None        
    	if num_retries > 0:            
    		if hasattr(e,'code') and 500 <= e.code <= 600:                
    			return download(url_,num_retries - 1)    
    	return html

把URLError换成HTTPError

    except urllib.request.HTTPError as e:        
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值