Взаимодействие с Интернетом. Разбор URL-адреса в Python
Взаимодействие с Интернетом » Python для начинающих » Общие вопросы python url, python urlparse, разбор url
Интернет прочно вошел в нашу жизнь. Очень часто необходимо передать данные на 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', '')
Данные библиотеки помогают манипулировать различными протоколами интернета. Получать и отправлять запросы чтобы обрабатывать полученные данные. Можно отправлять запросы к сайтам и получать его контент, потом редактировать и загружать, позволяет автоматизировать процесс работы. Создание сайтов Запорожье выполняется на профессиональном уровне, и его данными можно управлять с легкостью. Удобный интерфейс для администратора позволят управлять всем сайтом не трогая его код.
- Total Network Inventory – удобный способ отслеживания лицензирования ПО
- Игровой автомат Lucky Haunter - в казино Плей Фортуна по крупному выиграй
- Словари в Python
- Пин Ап – онлайн-казино с большими бонусами и яркими играми
- Регистрация на сайте Пари Матч: Преимущества и особенности казино
- Казино Вулкан и игровой автомат Алмазы
- Интернет-казино: Дверь в яркий мир азарта и веселья