Шаг 237.
Основы языка Python.
Взаимодействие с Интернетом. Разбор URL-адреса

    На этом шаге мы начнем знакомиться с инструментами, используемыми для выполнения этой операции.

    С помощью модуля urllib.parse можно манипулировать URL-адресом - например, разобрать его на составляющие или получить абсолютный URL-адрес, указав базовый и относительный адреса. URL-адрес (его также называют интернет-адресом) состоит из следующих элементов:

  <Протокол>://<Домен>:<Порт>/<Путь>;<Параметры>?<Запрос>#<Якорь>

    Схема URL-адреса для протокола FTP выглядит по-другому:

  <Протокол>://<Пользователь>:<Пароль>@<Домен>

    Разобрать URL-адрес на составляющие позволяет функция urlparse():

  urlparse (<URL-адрес>[ <Схема>[, <Разбор якоря>]])

    Функция возвращает объект ParseResult с результатами разбора URL-адреса. Получить значения можно с помощью атрибутов или индексов. Объект можно преобразовать в кортеж из следующих элементов: (scheme, netloc, path, params, query, fragment). Элементы соответствуют схеме URL-адреса:

  <scheme>://<netloc>/<path>;<params>?<query>#<fragment>.

    Обратите внимание на то, что название домена, хранящееся в атрибуте netloc, будет содержать номер порта. Кроме того, не ко всем атрибутам объекта можно получить доступ с помощью индексов. Пример кода, разбирающего URL-адрес, приведен ниже.

>>> from urllib.parse  import urlparse
>>> url = urlparse("http://www.admin.ru:80/test.php;st?var=5#metka")
>>> url
ParseResult(scheme='http', netloc='www.admin.ru:80', path='/test.php', 
params='st', query='var=5', fragment='metka')

    Во втором параметре функции urlparse() можно указать название протокола, которое будет использоваться, если таковой отсутствует в составе URL-адреса. По умолчанию это пустая строка. Примеры:

>>> urlparse ("//www.admin.ru/test.php")
ParseResult(scheme='', netloc='www.admin.ru', path='/test.php', 
params='', query='', fragment='')
>>> urlparse ("//www.admin.ru/test.php", "http")
ParseResult(scheme='http', netloc='www.admin.ru', path='/test.php', 
params='', query='', fragment='')

    Объект ParseResult, возвращаемый функцией urlparse(), содержит следующие атрибуты:

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг