我有一个类似于google.com
Python 的字符串,我想将其分成两部分:google
和.com
. 问题是我有一个 URL,例如subdomain.google.com
,我想将其拆分为subdomain.google
和.com
。
如何将 URL 的其余部分与 TLD 分开?由于.
诸如.co.uk
. 请注意,该 URL 不包含 http:// 或 www。
tldextract看起来像你需要的。它处理这个.co.uk
问题。
我使用了 tdl和urllib,但没有发现它们令人满意。我在 Google 搜索中多次发现这个关于如何解析 URL 的问题。过了一段时间,我花时间制作了一个正则表达式,并将其做成了一个开源包。
它处理具有二级顶级域的 URL,例如 co.uk,并且还支持带有特殊字符的国家 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
sub_domain
domain
top_domain
dir
file
fragment
query
为此,您需要一个有效域名列表。顶级代码(.com、.org 等)和国家代码(.us、.fr 等)很容易找到。试试http://www.icann.org/en/resources/registries/tlds。
对于二级域名(.co.uk、.org.au),您可能需要查找每个国家/地区代码以查看其子域。维基百科是你的朋友。
获得列表后,从您拥有的名称(google.com 或 co.uk)中获取最后两个部分,看看它是否在您的二级列表中。如果没有,请抓住最后一部分,看看它是否在您的顶级列表中。