2013-02-22 3 views
0

J'essaie d'obtenir l'URL qui a déjà été raccourcie par bit.ly et encore par twitter. Je l'ai déjà essayé:Déballage t.co lien qui lie à bit.ly

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

également en utilisant des bibliothèques telles que requests et httplib2. Toutes ces solutions fonctionneraient si je voulais la destination finale pour le lien t.co, cependant, j'ai besoin du raccourcisseur intermédiaire, que je peux maintenant obtenir via une demande HEAD mais je ne peux pas obtenir http 3 Python. .client de travail afin d'obtenir l'emplacement. Des idées?

Répondre

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

Fonctionne comme un jeu d'enfant, merci! – hernandes

1

requests suit automatiquement les redirections, mais vous permet d'accéder à toutes les URL via l'attribut 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' 
>>>