2013-02-22 58 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' 
>>>