我正在接收来自Twitter API的推文,很多时候推文都包含缩短的网址,因此获取实际网址非常重要。
例如,对于http://t.co/3hwXTqmktt http://www.animalpolitico.com/2014/04/304037/#axzz2yETrXxui我需要获取 animalpolitico.com
最重要的是获取域名,所以如果我有例如:
http://news.example.com
http://blog.example.com/eeaWdada5das
http://example.com/ewdaD585Jz
我为每个人获得了 example.com
。
我想python的任何此类 curl
都会有所帮助。我怎样才能做到这一点?
答案 0 :(得分:4)
您可能需要查看requests
库。
>>> r = requests.get('http://t.co/3hwXTqmktt')
>>> requests.url
>>> r.url
u'http://www.animalpolitico.com/2014/04/304037/#axzz2yETrXxui'
现在您已获得该网址,您可以使用urlparse
获取所需的网址。
答案 1 :(得分:2)
为了从网址中提取域名,除urlparse外,您还可以使用tldextract模块:
>>> import tldextract
>>> urls = ['http://news.example.com',
'http://blog.example.com/eeaWdada5das',
'http://example.com/ewdaD585Jz']
>>> for url in urls:
... data = tldextract.extract(url)
... print '{0}.{1}'.format(data.domain, data.suffix)
...
example.com
example.com
example.com
UPD(com.mx
的示例):
>>> data = tldextract.extract('http://example.com.mx')
>>> print '{0}.{1}'.format(data.domain, data.suffix)
example.com.mx
答案 2 :(得分:1)
这特别适用于Twitter和t.co链接,但通过API检索的推文对象具有附加到它们的所谓实体。您将在这些实体中找到包含在推文中的所有网址的原始扩展版本。有关详细信息,请参阅:https://dev.twitter.com/docs/entities