查找最终重定向网址的小网址

时间:2016-05-06 19:12:48

标签: python redirect tinyurl

我已经在SO中跟踪了其他几个问题,以找到最终的重定向网址,但是对于以下网址,我无法使重定向工作。它不会重定向并保持微小的状态。

import urllib2
def getFinalUrl(start_url):
        var = urllib2.urlopen(start_url)
        final_url = var.geturl()
        return final_url


url = "http://redirect.tinyurl.com/api/click?key=a7e37b5f6ff1de9cb410158b1013e54a&out=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fprofile%2FA3B4EO22KUPKYW&loc=&cuid=0072ce987ebb47328d22e465a051ce7&opt=false&format=txt"
redirect = getFinalUrl(url)
print "redirect: " + redirect

结果(如果您在浏览器中尝试,则不是最终的URL):

redirect: http://redirect.tinyurl.com/api/click?key=a7e37b5f6ff1de9cb410158b1013e54a&out=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fprofile%2FA3B4EO22KUPKYW&loc=&cuid=0072ce987ebb47328d22e465a051ce7&opt=false&format=txt

1 个答案:

答案 0 :(得分:2)

import urlparse
url = 'http://redirect.tinyurl.com/api/click?key=a7e37b5f6ff1de9cb410158b1013e54a&out=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fprofile%2FA3B4EO22KUPKYW&loc=&cuid=0072ce987ebb47328d22e465a051ce7&opt=false&format=txt'
try:
    out = urlparse.parse_qs(urlparse.urlparse(url).query)['out'][0]
    print(out) #http://www.amazon.com/gp/profile/A3B4EO22KUPKYW
except Exception as e: # dont catch all
    print('not found')

这种网址不需要卷曲以找出目的地/重定向网址是什么,好吧,因为你已经在你的网址中有了这些网址。

如果目的地/重定向网址未显示为此人

  

tinyurl.com/xxxx

然后这是一个不同的故事,你必须卷曲它以找出它解决的内容/ 304如下:

import requests
url = 'http://urlshortener.com/applebanana'
t = requests.get(url)
print(t.url)