如何删除“www”。从原始 URL 通过 python 中的 [urllib] 解析?

问题描述 投票:0回答:2

原始网址 ▶ https://www.exeam.org/index.html

我想从原始 URL 中提取 exeam.org/exeam.org

为此,我使用了

urllib
我所知道的 Python 中最强大的解析器, 但不幸的是
urllib
(
url.scheme
,
url.netloc
...) 无法给我我想要的格式类型。

python parsing url urllib
2个回答
7
投票

使用 `urllib) 从 url 中提取域名:

from urllib.parse import urlparse
surl = "https://www.exam.org/index.html"
urlparsed = urlparse(surl)
# network location from parsed url
print(urlparsed.netloc)
# ParseResult Object
print(urlparsed)

这将为您提供

www.exam.org
,但如果您只需要
exam.org
部分,则需要将其进一步分解为注册域。因此,除了进行简单的分割(这可能就足够了)之外,您还可以使用诸如
tldextract
之类的库,它知道如何解析子域名、后缀等:

from  tldextract import extract

ext = extract(surl)
print(ext.registered_domain)

这将产生:

exam.org

0
投票

您可以使用它而无需使用任何额外的库:

from urllib.parse import urlsplit

def domain_name(url):
    domain = urlsplit(url).netloc
    return domain.split('www.')[1] if domain.startswith('www.') else domain
© www.soinside.com 2019 - 2024. All rights reserved.