Python 2 и 3 извлечь домен из url

У меня есть URL-адрес: http://xxx.abcdef.com/fdfdf/

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

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

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

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

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

Ответ 1

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

Ответ 2

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

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

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

Подробнее о urlparse здесь