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 здесь