我有一点小麻烦创建带有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
>>> 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top