Вебинары Разобраться в IT Реферальная программа Тесты
Программирование Аналитика Дизайн Маркетинг Управление проектами
18 Окт 2023
3 мин
4523

Как работать с модулем urllib в Python

Изучите основы работы с модулем urllib в Python, который предоставляет множество функций для работы с URL-адресами и веб-запросами, с примерами кода!

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

Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.

Обзор модуля urllib

Модуль urllib состоит из нескольких подмодулей, каждый из которых отвечает за определенные функции:

  • urllib.request: для открытия и чтения URL-адресов;
  • urllib.parse: для работы с компонентами URL-адресов;
  • urllib.error: для обработки ошибок, возникающих при работе с URL-адресами;
  • urllib.robotparser: для анализа файла robots.txt.

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

Для открытия и чтения URL-адреса используйте функцию urlopen из подмодуля urllib.request. Вот пример:

from urllib.request import urlopen

url = "https://www.example.com"
response = urlopen(url)

print(response.read())

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

print(response.read().decode('utf-8'))

Работа с компонентами URL-адресов с помощью urllib.parse

Подмодуль urllib.parse предоставляет функции для работы с компонентами URL. Некоторые из них:

  • urlparse(): разбирает URL-адрес на компоненты;
  • urlunparse(): собирает компоненты URL-адреса в полный URL;
  • urlencode(): кодирует словарь параметров в строку запроса.

Пример использования urlparse():

from urllib.parse import urlparse

url = "https://www.example.com/search?q=python&lang=en"
parsed_url = urlparse(url)

print(parsed_url)

Результат:

ParseResult(scheme='https', netloc='www.example.com', path='/search', params='', query='q=python&lang=en', fragment='')

Пример использования urlencode():

from urllib.parse import urlencode

params = {"q": "python", "lang": "en"}
query_string = urlencode(params)

print(query_string)

Результат:

'q=python&lang=en'

Обработка ошибок с помощью urllib.error

При работе с URL-адресами могут возникать ошибки, такие как HTTPError (ошибка HTTP, например, 404) или URLError (общая ошибка, например, недоступность сервера). Для их обработки используйте подмодуль urllib.error. Пример обработки ошибок:

from urllib.request import urlopen
from urllib.error import HTTPError, URLError

url = "https://www.example.com/nonexistent_page"

try:
    response = urlopen(url)
except HTTPError as e:
    print(f"HTTP Error: {e.code}")
except URLError as e:
    print(f"URL Error: {e.reason}")

Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.

Заключение

Модуль urllib в Python предоставляет множество функций для работы с URL-адресами и веб-запросами. В этой статье мы рассмотрели основные возможности модуля и привели примеры его использования. Не забывайте экспериментировать и углублять свои знания! 😊

Добавить комментарий