Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

>> Python Форум Помощи!

Мы создали форум где отвечаем на все вопросы связанные с языком программирования Python. Ждем вас там!

>> Python Канал в Telegram

Обучающие статьи, видео и новости из мира Python. Подпишитесь на наш TELEGRAM КАНАЛ!

Взаимодействие с Интернетом. Разбор URL-адреса в Python

razbor-url-adresa.jpg

Интернет прочно вошел в нашу жизнь. Очень часто необходимо передать данные на Web-сервер или, наоборот, получить данные. Например, нужно получить котировку валют или прогноз погоды, проверить наличие писем в почтовом ящике. В состав стандартной библиотеке Python входит множество модулей, позволяющий работать практически со всеми протоколами Интернета.

Разбор URL-адреса

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

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

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

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

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

urlparser([, <Схема>[, <Якорь>]])

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

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

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

>>> from urlparse import urlparse
>>> url = urlparse("http://wwwadmin.ru:80/test.php;st?var=5#metka")
>>> url
ParseResult(scheme='http', netloc='wwwadmin.ru:80', path='/test.php', 
params='st', query='var=5', fragment='metka')
>>> tuple(url) # Преобразование в кортеж
('http', 'wwwadmin.ru:80', '/test.php', 'st', 'var=5', 'metka')

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

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

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

scheme - название протокола. Значение доступно также по индексу О. По умолчанию пустая строка. Пример:

>>> url.scheme, url[0]
('http', 'http')

netloc - название домена вместе с номером порта. Значение доступно также по индек­су 1. По умолчанию пустая строка.

По умолчанию пустая строка. Пример:

>>> url.netloc, url[1]
('wwwadmin.ru:80', 'wwwadmin.ru:80')

hostname - название домена в нижнем регистре. Значение по умолчанию:

None;

port - номер порта. Значение по умолчанию: None. Пример:

>>> url.hostname, url.port
('wwwadmin.ru', 80)

path - путь. Значение доступно также по индексу 2. По умолчанию пустая строка. Пример:

>>> url.path, url[2]
('/test.php', '/test.php')

params - параметры. Значение доступно также по индексу 3. По умолчанию пустая строка. Пример:

>>> url.params, url[3]
('st', 'st')

query - строка запроса. Значение доступно также по индексу 4. По умолчанию пустая строка. Пример:

>>> url.query, url[4]
('var=5', 'var=5')

fragment - якорь. Значение доступно также по индексу 5. По умолчанию пустая строка. Пример:

>>> url.fragment, url[5]
('metka', 'metka')

Если третий параметр в функции urlparse() имеет значение False, то якорь будет входить в состав значения значения других атрибутов, а не fragment. По умолчанию параметр имеет значение True. Пример:

>>> u = urlparse("http://site.ru/add.php?v=5#metka")
>>> u.query, u.fragment
('v=5', 'metka')
>>> u = urlparse("http://site.ru/add.php?v=5#metka","",False)
>>> u.query, u.fragment
('v=5#metka', '')

Данные библиотеки помогают манипулировать различными протоколами интернета. Получать и отправлять запросы чтобы обрабатывать полученные данные. Можно отправлять запросы к сайтам и получать его контент, потом редактировать и загружать, позволяет автоматизировать процесс работы. Создание сайтов Запорожье выполняется на профессиональном уровне, и его данными можно управлять с легкостью. Удобный интерфейс для администратора позволят управлять всем сайтом не трогая его код.