我正在尝试获取已经被bit.ly和twitter再次缩短的URL。我已经尝试过了:
import urllib.request
r = urllib.request.urlopen(url)
r.url
如果我想要t.co链接的最终目的地,所有这些解决方案都可以工作,但是,我确实需要中间缩短器,我现在可以通过HEAD请求获得但我无法获得Python 3 http。客户工作,以获得位置。有什么想法吗?
答案 0 :(得分:2)
>>> c = http.client.HTTPConnection('t.co')
>>> c.request('GET', '/7fGoazTYpc') # or HEAD, but body is empty anyway
>>> r = c.getresponse()
>>> r.getheader('Location')
'http://bit.ly/900913'
答案 1 :(得分:1)
requests
会自动跟踪重定向,但它允许您通过history
属性访问所有网址。
>>> r = requests.get('http://bit.ly/UG4ECS')
>>> r.url
u'http://www.fontsquirrel.com/fonts/exo'
>>> r.history
(<Response [301]>,)
>>> r.history[0].url
u'http://bit.ly/UG4ECS'
>>>