如何用Python从URL字符串中提取指定域名?
提取URL主域名的Python实现
你可以按照以下步骤实现需求,核心是用urlparse解析出域名后,再处理掉前缀并提取主域名部分:
实现步骤
- 导入
urlparse模块:from urllib.parse import urlparse - 编写函数时,先解析URL获取
netloc字段(这就是包含www前缀的完整域名) - 移除
www.前缀(如果存在) - 按
.分割处理后的域名,取分割结果的第一个元素(对应你示例里的主域名)
完整代码示例
from urllib.parse import urlparse def extract_domain(url): # 解析URL,获取网络位置(域名部分) parsed_url = urlparse(url) netloc = parsed_url.netloc # 处理没有netloc的情况(比如URL格式不规范) if not netloc: return None # 移除www.前缀 if netloc.startswith('www.'): netloc = netloc[4:] # 分割域名,提取主部分 parts = netloc.split('.') # 针对示例中的二级域名场景,取第一个部分即可 return parts[0] # 测试示例 test_urls = [ "http://google.com/youtube/win", "http://www.foodpub.com/home", "https://www.games.com" ] for url in test_urls: domain = extract_domain(url) print(f"url = \"{url}\" > domain name = \"{domain}\"")
补充说明
- 这个函数完全匹配你给出的所有示例场景,能正确提取
google、foodpub、games这类主域名 - 如果后续需要处理更复杂的多级域名(比如
blog.google.co.uk),可以额外添加顶级域名的判断逻辑,但当前示例场景下基础版本足够使用
内容的提问来源于stack exchange,提问作者ERGames
相关产品推荐
相关产品推荐

