0

关于指向另一个网址的网址,我有一个相当奇怪的问题。因此,例如,我有一个网址:

http://mywebpage/this/is/a/forward

最终指向另一个网址:

http://mynewpage/this/is/new

我的问题是,当我在 python 中使用例如 urllib2 来获取第一页时,它最终会获取第二页。我想知道是否有可能知道原始链接指向什么。当我请求第一个链接时,是否有类似“标题”的东西告诉我第二个链接?

对不起,如果这是一个非常愚蠢的问题!

4

3 回答 3

3

当您对第一个 URL 发出 GET 请求时,Web 服务器将返回一个 300 系列的回复代码,其Location标头的值为第二个 URL。您可以geturl使用urlopen. 如果涉及多个重定向,则 urllib 似乎会告诉您最后一跳,并且无法获取其他重定向。

这不会通过 JavaScript 或 处理重定向meta http-equiv="refresh",但您可能不在这种情况下,或者您不会像以前那样问问题。

于 2012-12-06T00:49:05.780 回答
0

您可以使用请求来执行此操作:

>>> url = 'http://ofa.bo/foagK7'
>>> r = requests.head(url)
>>> r.headers['location']
'https://my.barackobama.com/page/s/what-does-2000-mean-to-you'
于 2012-12-06T01:05:14.780 回答
0

最常见的是通过RFC2616中定义的重定向响应代码 (3xx) 来完成,尽管使用原始页面中的一些 javascript 无法实现“伪重定向效果”。

这个SO question是关于如何防止 urllib2 跟随重定向,它看起来像你可以使用的东西。

于 2012-12-06T00:47:40.440 回答