python 2 and 3 extract domain from url

2019-06-15 07:42发布

I have an url like: http://xxx.abcdef.com/fdfdf/

And I want to get xxx.abcdef.com

Which module can i use for accomplish this?

I want to use the same module and method at python2 and python3

I don't like the try except way for python2/3 compatibility

Thanks you so much!

2条回答
不美不萌又怎样
2楼-- · 2019-06-15 08:03

You can use 3rd party library six, which takes care of compatibility issues between python versions and standard library function urlparse to extract the hostname

so all you need to do is install six and import urlparse

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

More on urlparse here

查看更多
小情绪 Triste *
3楼-- · 2019-06-15 08:06

Use urlparse:

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

print o.netloc

In Python 3, you import urlparse like so:

from urllib.parse import urlparse

Alternatively, just use str.split():

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

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

Sidenote: Here's how you write an import of urlparse that will work in either version:

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
查看更多
登录 后发表回答