Python URL 字符串获取 domain
在网络编程中经常会遇到需要从 URL 字符串中获取域名(即域名部分)的情况。Python 提供了许多方式来实现这个功能,本文将介绍几种常用的方法,并演示它们的用法。
使用 urllib.parse.urlparse
from urllib.parse import urlparse
url = "https://www.example.com/page1"
parsed_url = urlparse(url)
domain = parsed_url.netloc
print(domain)
运行结果:
www.example.com
使用 urllib.parse.urlparse
函数可以方便地将 URL 字符串解析成一个 ParseResult
对象,然后从中获取 netloc
属性即可获得域名。
使用 tldextract
import tldextract
url = "https://www.example.com/page1"
extractor = tldextract.TLDExtract(cache_file=False)
result = extractor(url)
domain = f"{result.subdomain}.{result.domain}.{result.suffix}"
print(domain)
运行结果:
www.example.com
tldextract 是一个专门用于提取域名的 Python 库,它支持从 URL 或者域名中提取主域名、子域名和后缀等信息,使用起来非常方便。
使用正则表达式
import re
url = "https://www.example.com/page1"
pattern = r"https?://(?:www\.)?([\w\d-]+)\.\w+"
matches = re.findall(pattern, url)
domain = matches[0]
print(domain)
运行结果:
example
使用正则表达式也可以从 URL 中提取域名部分。上面的示例中我们使用了一个简单的正则表达式模式来匹配域名部分。
结语
本文介绍了几种在 Python 中从 URL 字符串中获取域名的方法,包括使用 urllib.parse.urlparse
、tldextract
和正则表达式。每种方法都有其特点和适用场景,根据具体情况选择合适的方法来实现域名提取功能。