我正在尝试获取已经被 bit.ly 和 twitter 缩短的 URL。我已经尝试过:
import urllib.request
r = urllib.request.urlopen(url)
r.url
如果我想要 t.co 链接的最终目的地,所有这些解决方案都可以工作,但是,我确实需要中间缩短器,现在我可以通过 HEAD 请求获得它,但我无法让 Python 3 http.client 在其中工作为了获得位置。有任何想法吗?
我正在尝试获取已经被 bit.ly 和 twitter 缩短的 URL。我已经尝试过:
import urllib.request
r = urllib.request.urlopen(url)
r.url
如果我想要 t.co 链接的最终目的地,所有这些解决方案都可以工作,但是,我确实需要中间缩短器,现在我可以通过 HEAD 请求获得它,但我无法让 Python 3 http.client 在其中工作为了获得位置。有任何想法吗?
>>> 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'
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'
>>>