题
我有一点小麻烦创建带有URL的脚本工作。我使用了urllib.urlopen(),以获得所需的URL的内容。但部分网址需要验证。而提示的urlopen我以我的用户名和密码,然后输入。 我需要的是忽略那将需要验证每一个网址,只需轻松地跳过它,继续下去,有没有办法做到这一点? 我想知道捕获HTTPError异常,但实际上,异常是由的urlopen()方法来处理,所以它不工作。
感谢每答复。
解决方案
您是对有关 urllib2.HTTPError
异常:
exception urllib2.HTTPError
虽然是一个例外(URLError的子类),引发HTTPError也可以用作非异常类文件返回值(相同的东西的urlopen()返回时)。处理异国HTTP错误,请如认证请求时,这是有用的。强>
code
如在RFC 2616此数值对应于价值定义的HTTP状态代码在代码的词典中找到的如在BaseHTTPServer.BaseHTTPRequestHandler.responses找到。
可用于该异常的代码属性以验证认证是必需的 - 代码401
>>> try:
... conn = urllib2.urlopen('http://www.example.com/admin')
... # read conn and process data
... except urllib2.HTTPError, x:
... print 'Ignoring', x.code
...
Ignoring 401
>>>
不隶属于 StackOverflow