Python URL拆分

时间:2012-06-03 14:36:45

标签: python string url tld

我在Python中有一个类似google.com的字符串,我想将其分为两部分:google.com。问题在于我有subdomain.google.com这样的网址,我希望将其分为subdomain.google.com

如何将其余网址与TLD分开?由于.等顶级域名,因此无法根据网址中的最后.co.uk进行操作。请注意,URL不包含http://或www。

3 个答案:

答案 0 :(得分:6)

tldextract看起来就像你需要的那样。它涉及.co.uk问题。

答案 1 :(得分:1)

我使用了tdlurllib,但没有发现它们令人满意。 我在Google搜索中多次找到有关如何解析网址的问题。 过了一会儿,我花时间制作了一个正则表达式,并将其放入一个开源软件包中。

它处理具有辅助顶级域名(例如co.uk)的URL,并且还支持带有特殊字符的国家URL。

url-parser on PyPi
URL Parser on GitHub

对于您来说,这样使用起来很容易:

第一步:

int iMoney_back_cents = (iMoney_back * 100) + .5;

第二步:

pip install url-parser

您可以使用这些键来获取URL的不同部分。

  • from url_parser import parse_url url = parse_url('subdomain.google.com') url['subdomain'] # subdomain url['domain'] # google url['top_domain'] #com
  • protocol
  • www
  • sub_domain
  • domain
  • top_domain
  • dir
  • file
  • fragment

答案 2 :(得分:0)

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

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

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