【问题标题】:Python URL splittingPython URL 拆分
【发布时间】:2012-06-07 22:18:02
【问题描述】:

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

如何将 URL 的其余部分与 TLD 分开?由于.co.uk 等TLD,它无法基于URL 中最后一个. 进行操作。请注意,该 URL 不包含 http:// 或 www。

【问题讨论】:

  • 对于即将到来的新 gTLD,这正成为一个更有趣的问题。很快我们也将分离“search.google”。

标签: python string url tld


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      我使用了tdlurllib,但没有发现它们令人满意。 我在 Google 搜索中多次发现这个问题,关于如何解析 URL。 过了一会儿,我花时间制作了一个正则表达式,并将其做成了一个开源包。

      它处理像 co.uk 这样具有二级顶级域的 URL,还支持带有特殊字符的国家 URL。

      url-parser on PyPi
      URL Parser on GitHub

      对你来说,像这样使用它会很容易:

      第一步:

      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

      【讨论】:

        猜你喜欢
        • 2022-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-03
        • 1970-01-01
        • 2021-07-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多