我有一个相当奇怪的问题,关于网址指向另一个网址。所以,例如,我有一个网址:
http://mywebpage/this/is/a/forward
最终指向另一个网址:
http://mynewpage/this/is/new
我的问题是,当我在python中使用例如urllib2来获取第一页时,它最终会获取第二页。我想知道是否有可能知道原始链接指向的内容。当我请求第一个链接时,是否有类似“标题”的内容告诉我第二个链接?
对不起,如果这是一个非常愚蠢的问题!
答案 0 :(得分:3)
当您发出第一个URL的GET请求时,Web服务器将返回一个300系列的回复代码,其中Location
标头的值为第二个URL。您可以使用geturl
method of the object returned by urlopen
找出Python的第二个URL。如果涉及多个重定向,则urllib会告诉您最后一跳,并且无法获取其他重定向。
这不会通过JavaScript或meta http-equiv="refresh"
处理重定向,但您可能不会处于这种情况,或者您不会按照您的方式提出问题。
答案 1 :(得分:0)
最常见的是通过RFC2616中定义的重定向响应代码(3xx)来完成,尽管可以通过原始页面中的一些javascript实现“伪重定向效果”。
这个SO question是关于如何防止urllib2跟踪重定向,它看起来像是你可以使用的东西。
答案 2 :(得分: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'