展开链接到bit.ly的t.co链接

时间:2013-02-22 16:08:33

标签: python twitter python-3.x

我正在尝试获取已经被bit.ly和twitter再次缩短的URL。我已经尝试过了:

import urllib.request
r = urllib.request.urlopen(url)
r.url

同样使用requestshttplib2等库。

如果我想要t.co链接的最终目的地,所有这些解决方案都可以工作,但是,我确实需要中间缩短器,我现在可以通过HEAD请求获得但我无法获得Python 3 http。客户工作,以获得位置。有什么想法吗?

2 个答案:

答案 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'
>>>