python 2和3从url中提取域

fj1*_*23x 13 python compatibility parsing python-2.x python-3.x

我有一个网址: http://xxx.abcdef.com/fdfdf/

我想得到 xxx.abcdef.com

我可以使用哪个模块来完成此任务?

我想在python2和python3上使用相同的模块和方法

我不喜欢尝试除了python2/3兼容性的方式

非常感谢!

jgr*_*tty 31

使用urlparse:

from urlparse import urlparse
o = urlparse("http://xxx.abcdef.com/fdfdf/")
print o

print o.netloc
Run Code Online (Sandbox Code Playgroud)

在Python 3中,您可以像这样导入urlparse:

from urllib.parse import urlparse
Run Code Online (Sandbox Code Playgroud)

或者,只需使用str.split():

url = "http://xxx.abcdef.com/fdfdf/"

print url.split('/')[2]
Run Code Online (Sandbox Code Playgroud)

旁注:以下是编写urlparse导入的方法,该导入将适用于任一版本:

if sys.version_info >= (3, 0):
    from urllib.parse import urlparse
if sys.version_info < (3, 0) and sys.version_info >= (2, 5):
    from urlparse import urlparse
Run Code Online (Sandbox Code Playgroud)

  • `urlparse`是迄今为止更好的解决方案. (7认同)

swa*_*ala 8

您可以使用 3rd 方库 6,它负责处理 python 版本和标准库函数之间的兼容性问题urlparse来提取主机名

所以你需要做的就是安装六个并导入 urlparse

from six.moves.urllib.parse import urlparse
u = urlparse("http://xxx.abcdef.com/fdfdf/")
print(u.hostname)
Run Code Online (Sandbox Code Playgroud)

更多关于 urlparse在这里