【发布时间】:2010-09-24 19:34:28
【问题描述】:
我需要在不实际下载内容的情况下检查页面是否被重定向。我只需要最终的 URL。最好的方法是 Python 吗? 谢谢!
【问题讨论】:
标签: python http http-headers
我需要在不实际下载内容的情况下检查页面是否被重定向。我只需要最终的 URL。最好的方法是 Python 吗? 谢谢!
【问题讨论】:
标签: python http http-headers
如果您特别想避免下载内容,则需要使用 HEAD 请求方法。我相信 urllib 和 urllib2 库不支持 HEAD 请求,因此您必须使用较低级别的 httplib 库:
import httplib
h = httplib.HTTPConnection('www.example.com')
h.request('HEAD', '/')
response = h.getresponse()
// Check for 30x status code
if 300 <= response.status < 400:
// It's a redirect
location = response.getheader('Location')
【讨论】:
urllib2 做到这一点。见here。
当您打开带有 urllib2 的 URL 并被重定向时,您会获得 30x 的重定向状态。检查信息以查看您被重定向到的位置。您无需阅读页面即可阅读回复中的info()。
【讨论】: