仅从url提取域名,去掉路径(Python)

2024-04-20 11:27:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试从url列表中提取域名,这样http://supremecosts.com/contact-us/就会变成http://supremecosts.com。我试图找到一个干净的方式来做它,将适应各种gtld和cctld。你知道吗


Tags: comhttpurl列表方式contact域名us
3条回答

假设您正在使用python3并且不想将regex用于作业

>>> from urllib.parse import urlparse
>>> url = "http://supremecosts.com/contact-us/"
>>> obj = urlparse(url)
>>> obj
ParseResult(scheme='http', netloc='supremecosts.com', path='/contact-us/', params='', query='', fragment='')
>>> obj.geturl()
'http://supremecosts.com/contact-us/'
>>> obj.netloc
'supremecosts.com'

可能一个愚蠢但有效的方法是:
将URL保存为字符串,然后从后向前扫描。一旦你遇到一个句号,把前面3个空格的所有东西都扔掉。我相信网址在域名后面没有句号。如果我错了,请纠正我。你知道吗

您可以使用regex这样做:

import re

text = 'http://supremecosts.com/contact-us/'

m = re.search('(https?:\/\/[^:\/\n]+)', text)
if m:
    print(m.group(1))

工作example

相关问题 更多 >