python 2和3从url中提取域

时间:2014-02-04 21:23:32

标签: python parsing python-3.x compatibility python-2.x

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

我希望得到xxx.abcdef.com

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

我想在python2和python3

使用相同的模块和方法

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

非常感谢你!

2 个答案:

答案 0 :(得分:29)

使用urlparse

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

print o.netloc

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

from urllib.parse import urlparse

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

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

print url.split('/')[2]

旁注:以下是编写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

答案 1 :(得分:3)

您可以使用第三方库六,它负责python版本和标准库函数urlparse之间的兼容性问题以提取主机名

所以你需要做的就是install six并导入urlparse

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

更多关于urlparse here