2013-02-22 723 views
0

我试图获取已被bit.ly缩短的URL,并且再次通过twitter。我已经尝试:通过使用库,如requestshttplib2解开链接到bit.ly的t.co链接

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

也。

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

回答

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' 
+0

工程作为一件轻而易举的事,谢谢! – hernandes 2013-02-22 19:43:29

1

requests自动遵循重定向,但它允许您通过history属性访问所有URL。

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