Skip to content

Сервис сбора данных о товарах с Ozon

Notifications You must be signed in to change notification settings

Nico-kun123/EShop-Parser

Repository files navigation

СЕРВИС СБОРА ДАННЫХ ТОВАРОВ С САЙТОВ ИНТЕРНЕТ-МАГАЗИНОВ

Примечание: Этот проект требует постоянного обновления кода из-за изменения названий селекторов на сайтах интернет-магазинов. Если код не обновлять, то сервис перестанет собирать данные с сайтов!

Интернет-магазины, с которых данные собираются:

Ozon

Статус сервиса:

🟥Не обновлён.

📑Содержание

  1. Введение
  2. Цели и Задачи
  3. Скриншоты
  4. Технологии
  5. Установка

Введение

Сбор информации в интернете — трудоёмкая, отнимающая много времени работа. Для решения подобной задачи можно использовать парсеры, которые способны в течение суток перебрать большую часть веб-ресурсов в поисках нужной информации и автоматизировать эту информацию.

Сервисы, предоставляющие услуги мониторинга цен и «парсинга» данных, в основном представляют собой веб-сайт, где есть возможность делать запросы на получение данных о товарах и экспортировать их в форматах CSV, PDF, XML.

❗ Цели и Задачи

Целью данной работы является разработка сервиса для сбора данных товаров с интернет-магазинов.

Сервис должен решать следующие задачи:

  1. Сбор данных с сайтов интернет-магазинов.
  2. Сбор данных о ценах товаров, которые уже хранятся в базе данных для того, чтобы показать, как цена данных товаров меняется каждый день.
  3. Хранение данных о пользователях и товарах в базе данных.
  4. Проверка собранных данных на актуальность (например, если URL товара недействительна, то все записи об этом товаре будут удалены).
  5. Отображение собранных данных товаров в виде графиков для мониторинга динамики изменения цен у категорий.
  6. Возможность пользователя выбирать конкретную категорию товаров, данные о товарах которой он желает получить. Пользователь также может выбрать все категории товаров, а не одну конкретную категорию.
  7. Возможность экспорта собранных данных в виде файла в форматах CSV, XML и PDF.

🖼 Скриншоты

В этом разделе представлены скриншоты страниц данного сервиса и содержание экспортируемых файлов (pdf, xml и csv). Также представлено краткое описание предназначения страниц и что в них содержится.

Страница с авторизацией и регистрацией

Окно авторизации:

image

Окно регистрации:

image


Главная страница

Это страница, на которой оказывается пользователь после успешной авторизации.

Здесь пользователь выбирает сайт интернет-магазина, с которого он желает получить данные о товарах. Затем он выбирает одну из категорий товаров (или он может выбрать все категории отваров) и нажимает на кнопку «Выбрать». После этого пользователь окажется на другой странице — «Parse», где пользователь может увидеть краткую статистику по каждой из категорий товаров на выбранном им сайте интернет-магазина (например, цены у самого дорогого и самого дешёвого товаров у категории) и графики, показывающие изменение средней цены у категории товаров с течением времени.

Для пользователя сервиса предусмотрена возможность выбирать конкретную категорию товаров у интернет-магазина, чтобы получить только те данные, которые его интересуют. Пользователь может выбрать все категории, чтобы получить абсолютно все данные о товарах для данного интернет-магазина.

image


Страница «О Сервисе»

Здесь содержится информация о том, что из себя представляет данный сервис, каков его функционал и с каких интернет-магазинов он собирает данные.

image


Страница «Parse»

Страница, на которой оказывается пользователь после выбора интернет-магазина и категории товаров на главной странице «Home».

Здесь пользователь может увидеть краткую статистику по каждой из категорий товаров на выбранном им сайте интернет-магазина (например, цены у самого дорогого и самого дешёвого товаров у категории) и графики, показывающие изменение средней цены у категории товаров с течением времени.

Также пользователь может скачать собранные данные в виде файла определённого формата (pdf, csv и xml).

image


Экспорт в pdf

На странице «Parse» пользователь выбирает формат «PDF» и нажимает на кнопку «Выбрать». Откроется окно для выбора места загрузки файла. После выбора начнётся скачивание файла. Содержимое этого файла:

image


Экспорт в csv

На странице «Parse» пользователь выбирает формат «CSV» и нажимает на кнопку «Выбрать». Откроется окно для выбора места загрузки файла. После выбора начнётся скачивание файла.

После того, как файл будет скачан, необходимо открыть Microsoft Excel и создать новый файл. Далее нужно выбрать «Из текстового/CSV-файла» на вкладке «Данные». Откроется окно, где нужно выбрать кодировку «UTF-8» и символ табуляции в качестве разделителя. После того, как данные будут загружены, Excel-таблица будет заполнена данными из CSV-файла:

image


Экспорт в xml

На странице «Parse» пользователь выбирает формат «XML» и нажимает на кнопку «Выбрать». Откроется окно для выбора места загрузки файла. После выбора начнётся скачивание файла.

После того, как файл будет скачан, его содержимое можно увидеть, используя онлайн-сервисы:

image

💻 Технологии

Структура веб-сервиса:

Серверная часть:

База данных и всё, что с ней используется:

Авторизация и регистрация:

Модуль сбора данных:

  • Puppeteer.js
  • user-agents
  • puppeteer-extra и puppeteer-extra-plugin-stealth (доп. библиотеки для обхода блокировок)

Построение графиков:

Экспорт в файл:


⏬ Установка

Клонируем удалённый репозиторий на локальную машину:

git clone https://github.com/Nico-kun123/EShop-Parser

Устанавливаем все необходимые компоненты:

npm install

Содержание файла "docker-compose.yml":

image

Для запуска базы данных нужно ввести в терминале следующее:

Примечание: Предусмотрено, что на вашем устройстве установлен Docker.

docker-compose up -d

...а для выключения:

docker-compose down

Содержание "package.json":

image

В проекте есть следующие скрипты:

image

  • "build". Запускает транскомпилятор "Babel" для сервера;
  • "start". Запускает скрипт "build", затем — сам сервер;
  • "parser". Запускает модуль-сборщик данных.

Автор

Кудрявцев Николай (Электронная почта: nicolay.kudryavtsev@gmail.com)

About

Сервис сбора данных о товарах с Ozon

Topics

Resources

Stars

Watchers

Forks