如何防止urllib2跟踪http请求的重定向?

时间:2013-01-31 12:37:53

标签: python urllib2

我使用以下方法获取HTTP响应代码,但无法获得3xx响应。

import urllib2
for url in ["http://entrian.com/", "http://entrian.com/does-not-exist/"]:
    try:
        connection = urllib2.urlopen(url)
        print connection.getcode()
        connection.close()
    except urllib2.HTTPError, e:
        print e.getcode()

如何在urllib2上禁用重定向处理?

2 个答案:

答案 0 :(得分:4)

您可以创建HTTPRedirectHandler的子类型,以您想要的任何方式处理每个重定向响应代码。然后,您可以使用urllib2.build_opener将自定义重定向处理程序构建到opener中,并以此方式覆盖默认的重定向处理程序。

答案 1 :(得分:4)

这不是一个直接的答案 - 但在这种情况下,你最好不要使用requests

import requests
for url in ["http://entrian.com/", "http://entrian.com/does-not-exist/"]:
    print requests.head(url).status_code