Python如何从url中提取域名?

Python如何从url字符串中提取域名(hostname)呢?最佳的方法是?

喜欢这个问题 | 分享 | 新建回答

回答

妹岛

Nov 11, 2019
0 赞

Python从网址Url中提取Hostname域名的最佳方式是使用urllib模块中的urlparse模块,直接使用即可。


Python2中使用urlparse模块从网址url中提取域名hostname的方法如下所示:

>>> from urlparse import urlparse
>>> res_cell = urlparse( 'https://zhuanfou.com/ask/78673769_063' )
>>> res_cell
ParseResult(scheme='https', netloc='zhuanfou.com', path='/ask/78673769_063', params='', query='', fragment='')
>>> res_cell.netloc
'zhuanfou.com'

运行一下


Python3中类似,但是导入模块的声明不是太一样,具体如下所示:

>>> from urllib.parse import urlparse
>>> res_cell = urlparse( 'https://zhuanfou.com/ask/78673769_063' )
>>> res_cell
ParseResult(scheme='https', netloc='zhuanfou.com', path='/ask/78673769_063', params='', query='', fragment='')
>>> res_cell.netloc
'zhuanfou.com'

运行一下



不过要注意,这里提取的域名是包含子域名的,假如传入的是
“https://fuck.zhuanfou.com/ask/78673769_063”,
那么返回的会是fuck.zhuanfou.com,而不是zhuanfou.com