【发布时间】:2013-11-24 09:21:21
【问题描述】:
我想知道如何防止 urllib2 跟踪我选择的 url 上的重定向请求。我在浏览时发现了这段 sn-p 代码,但它似乎在全球范围内有效,我只希望它禁用某个 url 上的重定向:
import urllib2
class RedirectHandler(urllib2.HTTPRedirectHandler):
def http_error_302(self, req, fp, code, msg, headers):
result = urllib2.HTTPError(req.get_full_url(), code, msg, headers, fp)
result.status = code
return result
http_error_301 = http_error_303 = http_error_307 = http_error_302
opener = urllib2.build_opener(RedirectHandler())
webpage = opener.open('http://www.website.com').geturl()
print webpage
我还应该提到我正在使用 urllib.urlopen('site.com') 请求一个 url,并且我希望允许发生第一个重定向,例如说 site.com 重定向到 site.com/redirect 但是然后它尝试再次从 site.com/redirect 重定向到 site.com/secondredirect 我希望脚本能够识别 url 中的“secondredirect”并阻止该请求发生。我希望我已经很好地解释了这一切,并希望看到一些回复,因为我花了好几个小时试图弄清楚这一点:头痛:
【问题讨论】:
-
stop the request from happening是什么意思? -
编辑:误读。我的意思是完全不遵循所选网址上的重定向。
-
嗨,你的答案去哪儿了?我只是想看看它是否有效?
-
试试看,我把它删了,因为我不确定它是否能用,我必须离开我的电脑一秒钟。
-
我现在想,我找不到解决办法。