Python URL 分割

4
我有一个Python字符串,例如google.com,我想将其拆分为两部分:google.com。问题在于当我有一个URL时,如subdomain.google.com,我希望它被拆分为subdomain.google.com
如何从TLD中分离出URL的其余部分?由于存在像.co.uk这样的TLD,因此不能仅依靠URL中的最后一个.进行操作。请注意,该URL不包含http://或www。

2
这个问题将因即将到来的新通用顶级域名变得更加有趣。很快我们也将分离出“search.google”。 - Gareth Latty
3个回答

6

tldextract 看起来是你需要的。它解决了 .co.uk 的问题。


1
我使用了tdlurllib,但并不满意。 在我的谷歌搜索中多次发现了这个问题,如何解析URL。 过了一段时间,我花时间制作了一个正则表达式,并将其制作成开源包。
它处理具有二级顶级域名(例如co.uk)的URL,还支持具有特殊字符的国家/地区URL。 PyPi上的url-parser GitHub上的URL Parser 对于您来说,像这样使用它很容易:
第一步:
pip install url-parser

第二步:
from url_parser import parse_url


url = parse_url('subdomain.google.com')
url['subdomain'] # subdomain
url['domain'] # google
url['top_domain'] #com


你可以使用这些键来获取URL的不同部分。
  • protocol:协议
  • www:www
  • sub_domain:子域名
  • domain:域名
  • top_domain:顶级域名
  • dir:目录
  • file:文件
  • fragment:片段
  • query:查询

0

要做到这一点,您需要一个有效域名列表。顶级域名(.com、.org等)和国家代码(.us、.fr等)很容易找到。请尝试http://www.icann.org/en/resources/registries/tlds

对于二级域名(.co.uk、.org.au),您可能需要查找每个国家代码以查看其子域。维基百科是您的朋友。

一旦您有了列表,请从您拥有的名称中获取最后两部分(google.com或co.uk),并查看它是否在您的二级列表中。如果没有,请获取最后一部分,并查看它是否在您的顶级列表中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接