На этом шаге мы рассмотрим остальные инструменты.
Метод geturl() возвращает изначальный URL-адрес. Пример:
>>> url.geturl()
'http://www.admin.ru:80/test.php;st?var=5#metka'
Выполнить обратную операцию (собрать URL-адрес из отдельных значений) позволяет функция urlunparse (<Последовательность>).
>>> from urllib.parse import urlunparse >>> t = ('http', 'www.admin.ru:80', '/test.php', '', 'var=5', 'metka') >>> urlunparse (t) 'http://www.admin.ru:80/test.php?var=5#metka' >>> l = ['http', 'www.admin.ru:80', '/test.php', '', 'var=5', 'metka'] >>> urlunparse (l) 'http://www.admin.ru:80/test.php?var=5#metka'
Вместо функции urlparse() можно воспользоваться функцией urlsplit (<URL-адрес>[, <Схема> [, <Разбор якоря>] ]). Ее отличие от urlparse() проявляется в том, что она не выделяет из интернет-адреса параметры. Функция возвращает объект SplitResuit с результатами разбора URL-адреса. Объект можно преобразовать в кортеж из следующих элементов: (scheme, netlос, path, query, fragment). Обратиться к значениям можно как по индексу, так и по названию атрибутов. Пример использования функции urlsplit() приведен ниже.
>>> from urllib.parse import urlsplit >>> url = urlsplit("http://www.admin.ru:80/test.php;st?var=5#metka") >>> url SplitResult(scheme='http', netloc='www.admin.ru:80', path='/test.php;st', query='var=5', fragment='metka') >>> url[0], url[1], url[2], url[3], url[4] ('http', 'www.admin.ru:80', '/test.php;st', 'var=5', 'metka') >>> url.scheme, url.netloc, url.hostname, url.port ('http', 'www.admin.ru:80', 'www.admin.ru', 80) >>> url.path, url.query, url.fragment ('/test.php;st', 'var=5', 'metka') >>> ftp = urlsplit("ftp://user:123456@mysite.ru") >>> ftp.scheme, ftp.hostname, ftp.username, ftp.password ('ftp', 'mysite.ru', 'user', '123456')
Выполнить обратную операцию (собрать URL-адрес из отдельных значений) позволяет функция urlunsplit (<Последовательность>).
>>> from urllib.parse import urlunsplit >>> t = ('http', 'www.admin.ru:80', '/test.php;st', 'var=5', 'metka') >>> urlunsplit(t) 'http://www.admin.ru:80/test.php;st?var=5#metka'
На следующем шаге мы рассмотрим кодирование и декодирование строки запроса.