原始网址 ▶ https://www.exeam.org/index.html
我想从原始 URL 中提取 exeam.org/ 或 exeam.org。
为此,我使用了
urllib
我所知道的 Python 中最强大的解析器,
但不幸的是 urllib
(url.scheme
, url.netloc
...) 无法给我我想要的格式类型。
使用 `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
您可以使用它而无需使用任何额外的库:
from urllib.parse import urlsplit
def domain_name(url):
domain = urlsplit(url).netloc
return domain.split('www.')[1] if domain.startswith('www.') else domain