Skip to content

Парсер для сайта Samokat, который автоматически собирает информацию о категориях и товарах.

License

Notifications You must be signed in to change notification settings

cramatsu/samokat-parser

Repository files navigation

Samokat: parser

Описание проекта

Данный проект представляет собой веб-парсер для сайта Samokat, который собирает информацию о товарах, таких как названия, цены и описание. Парсер использует Selenium для автоматизации взаимодействия с веб-страницами, а полученные данные сохраняются в базе данных PostgreSQL. Проект работает в среде Docker для упрощения развертывания и обеспечения изоляции.

Основные возможности

  • Парсинг названий, цен с сайта Samokat.
  • Использование браузера Chrome в headless-режиме для эффективного парсинга.
  • Сохранение собранных данных в базе данных PostgreSQL.
  • Возможность конфигурации и развертывания через Docker Compose.

Принцип работы парсера

  1. Selenium WebDriver запускается в Docker-контейнере и эмулирует работу браузера для получения HTML-кода страниц.
  2. Парсинг данных осуществляется с помощью Selenium: скрипт проходит по страницам товаров, собирает информацию о товарах и передает её в базу данных.
  3. PostgreSQL используется для хранения информации о товарах: каждая запись содержит название, цену и описание товара.
  4. Docker Compose используется для поднятия всех необходимых сервисов — базы данных PostgreSQL и Selenium Chrome WebDriver.

Требования

Для успешного запуска проекта вам потребуется:

  • Docker.
  • Подключение к интернету для получения данных с сайта.

Развертывание проекта

  1. Склонируйте репозиторий с проектом:

    git clone https://github.com/cramatsu/samokat-parser.git
  2. Перейдите в директорию проекта:

    cd samokat-parser
  3. Поднимите Docker контейнеры:

    docker-compose up --build
  4. Перейдите в консоль контейнера Django:

    docker exec -it <CONTAINER_NAME> bash 

    Используйте команду docker ps, для того, чтобы узнать название контейнера

  5. Выполните команду активации виртуального окружения:

    poetry shell
  6. Создайте учетную запись администратора с помощью команды superuser и следуйте инструкциям:

    python manage.py createsuperuser

Теперь, когда проект настроен, мы можем приступить к парсингу данных, для этого, не выходя из django-контейнера, используются следующие команды:

Последовательность команд при первом запуске приложения: fetch_categories -> parse_products

fetch_categories

Описание:
Эта команда собирает все категории товаров с сайта Samokat. Используя Selenium, она парсит ссылки на категории с главной страницы и сохраняет их в базу данных.

Функциональность:

  • Переход на главную страницу сайта Samokat.
  • Извлечение списка категорий товаров (название и URL).
  • Сохранение категорий в таблице categories базы данных.

Запуск: Запустите команду для обновления списка категорий в базе данных:

python manage.py fetch_categories

parse_products

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

Аргументы

  • limit - количество категорий, по которым будет проведен парсинг

Функциональность:

  • Переход на главную страницу сайта Samokat.
  • Извлечение списка категорий с их названиями и URL.
  • Сохранение категорий в таблице products базы данных.

Запуск: Чтобы запустить команду и обновить категории в базе данных:

python manage.py parse_products

или

python manage.py parse_products --limit 10

Админ-панель Django

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

Чтобы получить доступ к админ-панели, перейдите по адресу http://localhost:8000/admin после запуска приложения Django. Для входа вам понадобятся учётные данные администратора, которые вы зададите при настройке.

by Andrew Sorokin, @cramatsu, 2024

About

Парсер для сайта Samokat, который автоматически собирает информацию о категориях и товарах.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published