📅  最后修改于: 2023-12-03 15:06:32.636000             🧑  作者: Mango
在进行 Web 开发和爬虫时,经常需要从一个 URL 中提取出其域名。Python 提供了多种获取域名的方法,本文将介绍其中的几种方法。
urllib.parse.urlparse
方法可以将 URL 中的各个部分分解出来,其中 netloc
部分就是域名。
from urllib.parse import urlparse
url = 'https://www.example.com/path/to/some/page.html?query=string#fragment'
parsed = urlparse(url)
domain = parsed.netloc
print(domain)
输出:
www.example.com
tldextract 模块可以将域名从 URL 中提取出来,并且还支持获取顶级域名和子域名。
import tldextract
url = 'https://www.example.com/path/to/some/page.html?query=string#fragment'
extracted = tldextract.extract(url)
domain = extracted.registered_domain
print(domain)
输出:
example.com
如果你对正则表达式比较熟悉,也可以使用正则表达式提取域名。
import re
url = 'https://www.example.com/path/to/some/page.html?query=string#fragment'
pattern = r'^https?://([\w\.]+)/'
match = re.match(pattern, url)
if match:
domain = match.group(1)
print(domain)
输出:
www.example.com
以上三种方法中,第一种方法使用了 Python 内置的模块,第二种方法使用了第三方模块,第三种方法则是使用正则表达式自己解析 URL。根据具体的业务需求,可以选择合适的方法来提取域名。