python 2 and 3 extract domain from url

孤街浪徒 提交于 2020-01-14 07:11:36

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!