下载网页 (重传)
重传功能:如果返回如503等错误吗,可以尝试重传,错误吗可以参考:https://tools.ietf.org/html/rfc7231
import urllib2
def download(url, num_retries=2):
print 'Downloading:',url
try:
html = urllib2.urlopen(url).read()
except urllib2.URLError as e:
print 'Download error:', e.reason
html = None
# 此部分实现当返回错误为5xx时,进行重传
if num_retries > 0:
if hasattr(e, 'code') and 500 <= e.code < 600:
return download(url, num_retries-1)
# ——重传功能结束
return html
# 测试:这个网站始终会返回 500 错误吗
download('http://httpstat.us/500')
运行结果:
![](https://img-blog.csdn.net/20180124150416720?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hlbmV5c2hhcms=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
设置用户代理
缺省情况下,urllib2使用 Python-urllib/2.7 作为用户代理下载网页内容&#x