问题
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!
回答1:
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
回答2:
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
来源:https://stackoverflow.com/questions/21563744/python-2-and-3-extract-domain-from-url