Веб-скрейпер на Node.js для сбора данных о домах для престарелых
10 000 руб. за проект
Задача: Разработать веб-скрейпер на Node.js для автоматизированного сбора данных с сайта, посвящённого поиску мест ухода за пожилыми людьми. Помимо сбора данных, реализовать минимальный пользовательский интерфейс (UI) для удобной работы с инструментом.
Основные требования:
Технические детали:
Критерии завершения:
Основные требования:
- Сбор данных:
- Сайт содержит две структуры данных:
- Общая таблица с информацией о всех институциях.
- Страницы каждой отдельной институции с подробной информацией (около 20 полей для каждой).
- Скрейпер должен собирать данные из обоих уровней:
- Общая таблица: собрать базовые данные (название, адрес, основные параметры).
- Страницы институций: извлечь более детализированную информацию.
- Сайт содержит две структуры данных:
- Маскировка под человека:
- Реализация запросов должна быть выполнена так, чтобы минимизировать риск обнаружения скрейпинга:
- Использование задержек между запросами с рандомизацией.
- Изменение User-Agent при каждом запросе.
- Поддержка прокси-серверов (опционально).
- Использование механизма эмуляции браузера, например, через Puppeteer.
- Реализация запросов должна быть выполнена так, чтобы минимизировать риск обнаружения скрейпинга:
- Авторизация:
- Сайт требует авторизацию через логин и пароль.
- Скрейпер должен поддерживать ввод учетных данных (логин/пароль) для выполнения авторизации.
- Хранение данных:
- Данные должны быть сохранены в формате CSV или JSON для дальнейшего анализа.
- Поддержка логирования процесса (например, список успешных/неудачных скрейпингов).
- Минимальный пользовательский интерфейс (UI):
- Веб-интерфейс или десктопное приложение с функциями:
- Ввод логина и пароля.
- Настройка параметров скрейпинга (задержка запросов, выбор институций и т.д.).
- Запуск, остановка, и мониторинг процесса сбора данных.
- Возможность экспорта собранных данных.
- Веб-интерфейс или десктопное приложение с функциями:
Технические детали:
- Технологии:
- Node.js
- Puppeteer или Playwright (для работы с динамическими страницами и эмуляции браузера).
- Express.js (для создания интерфейса) или Electron (если предпочтение отдается десктопному приложению).
- Архитектура:
- Модульная структура:
- Авторизация: отдельный модуль для работы с логином/паролем.
- Сбор данных: модуль для обработки таблиц и страниц институций.
- Интерфейс: модуль для визуализации и управления процессом.
- Модульная структура:
- Дополнительные функции:
- Поддержка многопоточности (если скрейпинг нескольких страниц требует ускорения).
- Автоматическая обработка ошибок (например, повторный запрос при временной неудаче).
- Тестирование:
- Проверить скрейпер на стабильность работы с большим объемом данных.
- Убедиться в корректности сохранения данных.
Критерии завершения:
- Скрипт успешно авторизуется на сайте и собирает данные в указанном формате.
- Реализован минимальный интерфейс для управления процессом.
- Данные сохраняются без ошибок, и инструмент работает без блокировки со стороны сайта.
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.