urlib2.URLError及其在python中的原因

时间:2016-12-08 23:16:35

标签: python web-scraping urllib2

问题的标题可能有点令人困惑,但我真的不知道如何最好地说出来...... 我发现了以下大量代码,它们通过使用urllib2库从网上下载网页。

import urllib2

def download(url):
    try:
        html = urllib2.urlopen(url).read()
    except urllib2.URLError as e:
        print 'Download error:', e.reason
        html = None
    return html

现在如果发生e.code是404,那么e.reason只是一个空字符串,这意味着它绝对没有关于触发错误的内容的信息,因此我真的不明白使用的重点e.reason在这里。 打印e似乎更合理,但即使我将其更改为print e,它仍然会产生一些尴尬:HTTP Error 404:并且冒号后面是空的串... 所以在我看来,上述代码在异常处理方面有点笨拙。是这样吗?

1 个答案:

答案 0 :(得分:0)

如果你想要,你可以使用错误本身(打印e)或代码和原因(打印"下载错误:",e.code,e.reason)看到404代码。