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

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

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

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

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

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

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


person fj123x    schedule 04.02.2014    source источник
comment
url.split('/')[2] Вы прочитали полное руководство по Python? Мне нравится этот: diveintopython.net   -  person MGP    schedule 05.02.2014


Ответы (2)


Используйте разбор URL:

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]

Примечание: вот как вы пишете импорт 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
person jgritty    schedule 04.02.2014
comment
urlparse безусловно лучшее решение. - person 2rs2ts; 05.02.2014

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

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

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

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

person swapnil jariwala    schedule 24.11.2015