Доступ к веб-данным с urllib в Python: практическое руководство
Доступ к веб-данным с urllib в Python
Что такое urllib?
urllib — встроенный модуль Python, упрощающий открытие URL и работу с веб-ресурсами. Он предоставляет функции и классы для получения, парсинга и обработки URL, позволяя разработчикам забирать XML, HTML, JSON и другие форматы данных прямо из интернета.
В этом туториале мы покажем, как использовать urllib для:
- Открытия URL и проверки HTTP-кода ответа.
- Чтения полного HTML-контента веб-страницы.
Открытие URL с urllib
Перед любым сетевым запросом импортируйте соответствующий модуль urllib:
import urllib.request # Python 3
# import urllib2 # Python 2 (устарел в новых релизах)
Определите главную функцию, укажите целевой URL и откройте соединение с urlopen(). В качестве примера используем YouTube-канал Guru99:
def main():
url = urllib.request.urlopen("https://www.youtube.com/user/guru99com")
print("result code: " + str(url.getcode()))
data = url.read()
print(data.decode('utf-8'))
if __name__ == "__main__":
main()
Метод getcode() возвращает HTTP-статус код (например, 200 для успеха). Метод read() получает сырые байты страницы, которые мы декодируем в UTF-8 для читаемости.
Чтение HTML-контента
После открытия URL можно извлечь HTML, просто вызвав read(). Полученные байты представляют весь HTML-документ, который затем можно парсить библиотеками вроде BeautifulSoup или отображать напрямую.
Ниже — визуальный пример декодированного HTML-вывода в консоли:

Полные примеры кода
Для справки ниже приведены полные скрипты для сред Python 2 и Python 3.
Пример для Python 2
import urllib2
def main():
web_url = urllib2.urlopen("https://www.youtube.com/user/guru99com")
print("result code: " + str(web_url.getcode()))
data = web_url.read()
print(data)
if __name__ == "__main__":
main()
Пример для Python 3
import urllib.request
web_url = urllib.request.urlopen('https://www.youtube.com/user/guru99com')
print('result code: ' + str(web_url.getcode()))
print(web_url.read().decode('utf-8'))
Python
- Навигация в SaaS и облаке: почему тщательное управление данными критично
- Ключевые слова и идентификаторы в Python: мастерство зарезервированных слов и соглашений об именовании
- Операторы, отступы и комментарии в Python: понятное руководство
- Переменные, константы и литералы в Python — подробное руководство
- Освоение типов данных в Python: практическое руководство
- Мастерство преобразования типов в Python: Полное руководство
- Мастерство ввода-вывода и импорта модулей в Python: Практическое руководство
- Глобальные, локальные и nonlocal переменные в Python: понимание и применение
- Управление директориями и файлами в Python: полное руководство
- Ошибки и встроенные исключения в Python: полное руководство