4

我有一个类似于google.comPython 的字符串,我想将其分成两部分:google.com. 问题是我有一个 URL,例如subdomain.google.com,我想将其拆分为subdomain.google.com

如何将 URL 的其余部分与 TLD 分开?由于.诸如.co.uk. 请注意,该 URL 不包含 http:// 或 www。

4

3 回答 3

6

tldextract看起来像你需要的。它处理这个.co.uk问题。

于 2012-06-03T14:39:04.580 回答
1

我使用了 tdlurllib,但没有发现它们令人满意。我在 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
于 2020-01-31T21:14:08.080 回答
0

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

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

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

于 2012-06-03T15:49:51.230 回答