R50 07c3e9e80be2cfefed573f9697c0b5a9
Python-Developer

Парсинг веб-приложения "Beli"

Добавлено 22 ноя 2022 в 19:19
Ссылка на GitHub: scraping_app.beliapp.com

Цель
Заказчик хотел собрать данные о ресторанах из веб-приложения «Beli». Нужно было собрать все данные обо всех ресторанах из списка ресторанов в веб-приложении и записать данные в csv файл

Решение
Парсинг любого сайта начинается с анализа и планирования работы. Первый шаг — просмотреть сайт, чтобы понять, с чем нам приходится иметь дело.

Веб-приложение очень простое. Он состоит из списка карточек ресторанов и малоинтересной для нас рекламной кнопки «Скачать Beli». Когда страница загружается, у нас есть список из 20 карточек ресторанов. Однако при прокрутке списка новые карточки загружаются автоматически, без нажатия кнопок и перехода на другие страницы. Это означает, что новые карты загружаются с использованием Java Script.

Скорее всего на сайте есть API, через который Java Script подгружает нужные данные. Таким образом, у нас есть два варианта развития события:

1. Пробуем делать запросы к API. Если API открыто для внешних запросов, мы получаем всю информацию из API и записываем ее в файл csv в нужном формате

2. Если API не принимает внешние запросы, используем инструмент Selenium, благодаря которому мы будем нажимать на карточки ресторанов, чтобы страница прокручивалась вниз и Java Script загружал нам новые карточки ресторанов, пока мы не получим их все

Сначала попробуем проверить первый способ, так как он более предпочтителен из-за своей простоты и быстрого действия. При попытке решить проблему первым способом мы видим, что на сайте действительно есть API, благодаря которому осуществляется загрузка данных. Более того, этот API открыт для внешних Get-запросов, то есть мы можем легко получить всю необходимую нам информацию очень простым способом. Нам просто нужно записать данные в файл csv
1a80c52c9a 5eb0b15717 8c32b5f883 18993ba0f8