【问题标题】:urllib ignore authentication requestsurllib 忽略身份验证请求
【发布时间】:2011-01-23 17:59:45
【问题描述】:

我在创建使用 URL 的脚本时遇到了一些问题。我正在使用 urllib.urlopen() 来获取所需 URL 的内容。但其中一些 URL 需要身份验证。 urlopen 提示我输入我的用户名和密码。 我需要的是忽略每个需要身份验证的 URL,只需轻松跳过它并继续,有没有办法做到这一点? 我想知道捕获HTTPError异常,但实际上异常是由urlopen()方法处理的,所以它不起作用。

感谢您的每一个回复。

【问题讨论】:

    标签: python urllib urlopen


    【解决方案1】:

    您对urllib2.HTTPError 异常的看法是正确的:

    exception urllib2.HTTPError

    虽然是一个异常(URLError 的子类),但 HTTPError 也可以用作非异常的类似文件的返回值(与 urlopen() 返回的相同)。这在处理特殊的 HTTP 错误时很有用,例如身份验证请求。

    code

    RFC 2616 中定义的 HTTP 状态代码。此数值对应于在 BaseHTTPServer.BaseHTTPRequestHandler.responses 中找到的代码字典中的值。

    异常的code属性可以用来验证是否需要认证——代码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
    >>> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-04
      • 2014-03-11
      • 1970-01-01
      • 2014-01-15
      相关资源
      最近更新 更多