
python如何只显示域名
用户关注问题
如何从URL中提取域名?
我有一个完整的URL,想用Python代码只获取其中的域名部分,该怎么做?
用Python提取URL的域名
可以使用Python标准库中的urllib.parse模块,通过urlparse函数解析完整的URL,然后获取netloc属性,它即为域名。例如:
from urllib.parse import urlparse
url = 'https://www.example.com/path?query=123'
parsed_url = urlparse(url)
domain = parsed_url.netloc
print(domain) # 输出:www.example.com
如何处理含端口号的域名?
Python提取域名时如果URL里包含端口号,该如何只显示纯域名而不带端口?
剔除端口号得到纯域名
当URL中包含端口号时,比如 'www.example.com:8080',通过urlparse得到netloc会包括端口号。可以用字符串分割或split(':')来去除端口部分,例如:
host_port = parsed_url.netloc
domain = host_port.split(':')[0]
print(domain) # 输出:www.example.com
如何从多个URL中批量提取域名?
如果我有一个URL列表,想用Python快速取出所有域名,有没有推荐的方法?
批量提取域名的Python方案
可以对URL列表使用列表解析结合urllib.parse.urlparse来实现批量提取,示例代码如下:
urls = ['https://site1.com/path', 'http://example.org/page', 'https://sub.domain.net']
domains = [urlparse(u).netloc.split(':')[0] for u in urls]
print(domains) # 输出:['site1.com', 'example.org', 'sub.domain.net']