Введение в мир парсинга может быть увлекательным путешествием для программистов, стремящихся попасть на просторы веб-данных. Python предоставляет удобные инструменты для парсинга, такие как модуль requests для отправки HTTP-запросов и работа с популярным текстовым форматом JSON. Давайте рассмотрим основы парсинга с использованием этих инструментов.
При работе с сетями и сайтами часто используется специальный текстовый формат обмена данными JSON. В Python он часто выглядит как словарь или список.
Для отправления запроса на сайт и сбора данных с него используется специальная библиотека requests. Процесс отправления запроса на сайт и сбора данных с него называется парсингом.
Основы парсинга с модулем requests
Парсинг — это процесс сбора данных с веб-сайта через отправку HTTP-запросов. В Python для этой цели широко используется библиотека requests. Тем не менее, она не входит в стандартную библиотеку, поэтому её нужно устанавливать дополнительно.
Модуль request используется из библиотеки, которой первоначально в Python нет и её надо устанавливать. И называется эта библиотека requests (переводится как запросы). Вызывается эта библиотека строчкой import requests.
После установки этой библиотеки, мы можем импортировать библиотеку в наш код, с помощью строчки ниже:
import requests
После импорта библиотеки и вызова print(my_req) результатом будет <Response [200]>, и вся информация будет храниться в объекте Response. И теперь с этим объектом можно работать, вызывая информацию через точку print(my_req.открывает методы работы показанные ниже)
Эти данные в объекте Response представляют собой JSON-файл — особый текстовый формат обмена данными.
Пример использования requests
Рассмотрим простой пример отправки HTTP-запроса и получения ответа от сервера:
import requests
# Отправляем GET-запрос на веб-сайт
response = requests.get('https://api.example.com/data')
# Проверяем статус-код ответа
print(response) # <Response [200]>
# Извлекаем данные из ответа в формате JSON
data = response.json()
# Выводим полученные данные
print(data)
Разбор кода
- import requests: импортируем библиотеку requests для использования.
- response = requests.get('https://api.example.com/data'): отправка GET-запроса на указанный URL. Результат сохраняется в объекте response.
- print(response): выводит объект Response, содержащий статус-код HTTP (например, 200, если запрос успешен).
- data = response.json(): преобразует данные ответа в формат JSON для удобства работы в Python.
- print(data): выводит десериализованные данные, которые теперь можно обрабатывать как обычный словарь или список.
Рекомендации по улучшению
- Проверьте статус-код ответа перед обработкой данных, чтобы удостовериться в успешности запроса:
- Используйте блок try-except для обработки возможных ошибок:
Работа с форматом JSON
JSON (JavaScript Object Notation) — это текстовый формат обмена данными, который часто используется для передачи данных между сервером и клиентами (или другими серверами).
JSON применяется в web приложениях, как обмен данными между браузером и сервером, а так же и между серверами.
JSON представляет собой либо набор пар ключ-значение (словарь, хеш-таблица и так далее), либо упорядоченный набор значений (например, список).
В Python JSON представляется в виде словарей или списков.
JSON является одним из стандартизированных форматов.
Пример обработки JSON с помощью модуля json
Python предоставляет встроенный модуль json, позволяющий конвертировать данные из JSON в объекты Python и обратно. Для работы с JSON файлом используется одноимённый модуль JSON.
Рассмотрим примеры десериализации и сериализации:
Десериализация
Разбор кода
- import json: импорт модуля для работы с JSON.
- json_string = '{"name": "John", "age": 30}': строка в формате JSON.
- data = json.loads(json_string): десериализация строки JSON в объект Python (словарь).
- print(data['name']) и print(data['age']): вывод значения по ключам из словаря.
Метод load позволяет правильно считывать файл JSON.
С помощью специальной встроенной библиотеки JSON и метода data = json.loads(..., ...), можно преобразовать формат JSON в тот, который нам нужен.
data = json.loads(..., ...) — эта строчка вызывает десериализацию JSON.
При записи json.load (без s), указывает на то, что мы работаем с файлом. То же самое касается и метода json.dump и json.dumps.
JSON — это текстовый формат обмена данными и используется в качестве расширения для файла.
Десериализация в Python — это процесс восстановления объекта из сериализованной формы (файла, строки, байтов и т. п.). Другими словами, это распаковка байтов в объекты языка программирования, приведение последовательности назад к типам и структурам. Десериализация позволяет восстановить объект с тем же состоянием, в котором он был при сериализации.
Сериализация
Разбор кода
- data = {...}: создаём объект Python (словарь).
- json_string = json.dumps(data): сериализуем словарь в строку JSON.
- print(json_string): выводим строку JSON.
json.dump(data,file) — эта строка вызывает сериализацию JSON.
Методы dump и dumps выполняют сериализацию файла JSON и наоборот, преобразуют в удобный словарь в формате JSON.
Метод dump используется для записи файла JSON.
Сериализация в Python — это процесс преобразования объекта в последовательность байтов или формат, который можно сохранить в файл, передать по сети или сохранить в базе данных.
Рекомендации
- Если работаете с JSON-файлами, используйте методы json.load и json.dump для чтения и записи файлов соответственно.
Заключение
Понимание основ парсинга и работа с JSON — это важные навыки, которые позволяют эффективно работать с веб-ресурсами и данными. Модули requests и json предоставляют мощные, но простые в использовании инструменты для обработки HTTP-запросов и манипуляции с данными в формате JSON. Овладение этими технологиями откроет вам новые горизонты для работы с современными веб-приложениями.
Полезные ресурсы:
Сообщество дизайнеров в VK
https://vk.com/grafantonkozlov
Телеграмм канал сообщества
https://t.me/grafantonkozlov
Архив эксклюзивного контента
https://boosty.to/antonkzv
Канал на Дзен
https://dzen.ru/grafantonkozlov
---------------------------------------
Бесплатный Хостинг и доменное имя
https://tilda.cc/?r=4159746
Мощная и надежная нейронная сеть Gerwin AI
https://t.me/GerwinPromoBot?start=referrer_3CKSERJX
GPTs — плагины и ассистенты для ChatGPT на русском языке
https://gptunnel.ru/?ref=Anton
---------------------------------------
Донат для автора блога