|
最近写了几个爬虫的程序,因为是需要下载美女图片,而拿到了图片地址之后下载时发现有些时候因为网络原因读取超时或者是网站本身原因无法打开,就像楼主你描述的这种网站不正常,所以我总结了一些经验,比如楼主说的不正常的网站是那种不存在的网站,像这段代码这么处理
def getUrl_multiTry(url):
"""
功能:爬图类网站源码读取函数
:参数名 类型 描述
:url string 网站地址
"""
maxTryNum = 10
html = ""
for tries in range(maxTryNum):
try:
request = urllib2.Request(url)
request.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)')
response = urllib2.urlopen(request)
html = response.read()
break
except:
if tries <(maxTryNum-1):
continue
else:
# logging.error("Has tried %d times to access url %s, all failed!", maxTryNum, url)
break
return html
网站不存在即读不到网站源码,返回的是一个空的string,这时候我们就可以判断返回的是什么来做相应的处理,可能提供的方法比较粗糙,但是也给楼主一个解决问题的思路-。- |
|