Python 2 и 3 извлекают домен из URL

У меня есть URL, как: http://xxx.abcdef.com/fdfdf/

И я хочу получить xxx.abcdef.com

Какой модуль я могу использовать для достижения этой цели?

Я хочу использовать один и тот же модуль и метод на python2 и python3

Мне не нравится попытка, кроме как для совместимости с python2/3

Спасибо большое!

2 ответа

Решение

Используйте 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]

Sidenote: Вот как вы пишете импорт 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

Вы можете использовать стороннюю библиотеку шесть, которая решает проблемы совместимости между версиями Python и стандартной библиотечной функцией. urlparse извлечь имя хоста

так что все, что вам нужно сделать, это установить шесть и импортировать urlparse

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

Больше на urlparse здесь

Другие вопросы по тегам