ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как использовать Urllib в Python

Как удалить файлы и каталоги в Python

Python содержит модуль urllib для обработки задач, связанных с унифицированным указателем ресурсов (URL). Этот модуль установлен в Python 3 по умолчанию и получает URL-адреса различных протоколов с помощью функции urlopen(). Urllib можно использовать для многих целей, таких как чтение содержимого веб-сайта, выполнение запросов HTTP и HTTPS, отправка заголовков запросов и получение заголовков ответов. Модуль urllib содержит множество других модулей для работы с URL-адресами, например urllib.request, urllib.parse и urllib.error, среди прочих. Эта статья покажет вам, как использовать модуль Urllib в Python.

 

Пример 1. Открытие и чтение URL-адресов с помощью urllib.request

Модуль urllib.request содержит классы и методы, необходимые для открытия и чтения любого URL-адреса. В следующем сценарии показано, как использовать модуль urllib.request для открытия URL-адреса и чтения содержимого URL-адреса. Здесь метод urlopen() используется для открытия URL-адреса https://www.andreyex.ru/. Если URL-адрес действителен, то содержимое URL-адреса будет сохранено в объектной переменной с именем response. Затем используется метод read() объекта ответа для чтения содержимого URL-адреса.

#!/usr/bin/env python3
# Модуль запроса
импорта urllib import urllib.request
# Откройте конкретный URL для чтения с помощью urlopen()
response = urllib.request.urlopen('https://www.andreyex.ru/')
# Распечатать данные ответа URL
print("Вывод URL:\n\n", response.read())

Пример 2: Разбор и разбор URL-адресов с помощью urllib.parse

Модуль urllib.parse в основном используется для разделения или объединения различных компонентов URL-адреса. В следующем сценарии показаны различные варианты использования модуля urllib.parse. Четыре функции urllib.parse, используемые в следующем скрипте, включают urlparse, urlunparse, urlsplit и urlunsplit. Модуль urlparse работает как urlsplit, а модуль urlunparse работает как urlunsplit. Между этими функциями есть только одно различие; то есть urlparse и urlunparse содержат дополнительный параметр с именем ‘params’ для разделения и функции соединения. Здесь URL-адрес https://andreyex.ru/play_sound_python/ используется для разделения и присоединения к URL-адресу.

#!/usr/bin/env python3

# Импортировать модуль синтаксического анализа urllib
import urllib.parse

# Разбор URL с использованием urlparse()
urlParse = urllib.parse.urlparse('https://andreyex.ru/play_sound_python/')
print(" \n Вывод URL после синтаксического анализа: \n ", urlParse)

# Присоединение к URL с помощью urlunparse()
urlUnparse = urllib.parse.urlunparse(urlParse)
print("\n Объединенный вывод синтаксического анализа URL: \n ", urlUnparse)

# Анализ URL с использованием urlsplit()
urlSplit = urllib.parse.urlsplit('https://andreyex.ru/play_sound_python/')
print(" \n Вывод URL после разделения: \n ", urlSplit)

# Присоединение к URL с помощью urlunsplit()
urlUnsplit = urllib.parse.urlunsplit(urlSplit)
print("\n Объединяющий вывод разделения URL-адреса: \n ", urlUnsplit )

Пример 3: Чтение заголовка ответа HTML с помощью urllib.request

В следующем сценарии показано, как различные части заголовка ответа URL-адреса могут быть получены с помощью метода info(). Модуль urllib.request, используемый для открытия URL-адреса, https://andreyex.ru/python_pause_user_input/, и информация заголовка этого URL-адреса печатается с помощью метода info(). Следующая часть этого сценария покажет вам, как читать каждую часть заголовка отдельно. Здесь значения Server, Date и Content-Type печатаются отдельно.

#!/usr/bin/env python3

# Модуль запроса импорта urllib
import urllib.request

# Откройте URL для чтения
urlResponse = urllib.parse.urlopen('https://andreyex.ru/python_pause_user_input/')
# Чтение вывода заголовка ответа URL
print(urlResponse. info())

# Отдельное чтение информации заголовка
print('Response server =', urlResponse.info()["Server"])
print('Дата ответа =', urlResponse. info()["Date"])
print('Тип содержимого ответа =', urlResponse. info()["Content-Type"])

Пример 4. Чтение ответов URL построчно

В следующем скрипте используется локальный URL-адрес. Здесь тестовый HTML-файл с именем test.html создается в папке var /www/html. Содержимое этого файла читается построчно с помощью цикла for. Метод strip() затем используется для удаления пространства с обеих сторон каждой линии. Вы можете использовать любой HTML-файл с локального сервера для тестирования скрипта. Ниже приводится содержимое файла test.html, использованного в этом примере.

test.html:

<html>
<body>
Страница тестирования
<body>
< /html >
#!/usr/bin/env python3

# Импортировать модуль urllib.request
import urllib.request

# Открыть локальный URL-адрес для чтения
response = urllib.request.urlopen('http://localhost/test.html')

# Прочитать URL из ответа
print (' URL: ', response.geturl())

# Прочитать текст ответа построчно
print ("\nЗначение содержание:")
for line in response:
print(line.strip())

Пример 5: Обработка исключений с urllib.error.URLError

В следующем сценарии показано, как использовать URLError в Python через модуль urllib.error.Любой URL-адрес может быть взят от пользователя. Если адрес не существует, будет вызвано исключение URLError и будет напечатана причина ошибки. Если значение URL-адреса находится в недопустимом формате, будет вызвана ошибка ValueError и будет напечатана настраиваемая ошибка.

#!/usr/bin/env python3

# Импортировать необходимые модули
import urllib.request
import urllib.error

# блокировка попытки открыть любой URL для чтения
try :
url = input("Введите любой адрес URL:")
response = urllib.request.urlopen(url)
print(response.read())

# Перехватить ошибку URL, которая будет генерироваться при открытии любого URL,
except urllib.error.URLError as e:
print("Ошибка URL:", e.reason)
# Перехватить ошибку неверного URL,
except ValueError :
print("Введите действительный адрес URL")

Пример 6: Обработка исключений с urllib.error.HTTPError

Следующий сценарий показывает, как использовать HTTPError в Python через модуль urllib.error.HTMLError генерирует , когда данный URL – адрес не существует.

#!/usr/bin/env python3

# Импортировать необходимые модули
import urllib.request
import urllib.error

# Введите любой допустимый URL-адрес
url = input("Введите любой URL-адрес:")
# Отправьте запрос на URL-адрес
request = urllib.request.Request(url)

try :
# Попытаться открыть URL
urllib.request.urlopen(request)
print("URL существует")
except urllib.error.HTTPError as e:
# Распечатать код ошибки и причину ошибки
print("Код ошибки:%d\nПричина ошибки:%s" %(e.code,e.reason))

 

Заключение

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

Exit mobile version