Skip to content

WEBzaytsev/parser

Repository files navigation

Парсер 2-х сайтов

Версия Python: 3.13.7

Описание

Парсер работает в асинхронном режиме: одновременно обрабатывается несколько страниц.

  • Для каждого сайта запускается отдельный браузер, в каждом — по 4 страницы: 1 для каталога и 3 для товаров.
  • За один цикл парсится 3 товара.
  • Сайт 1 (быстрый): без задержек — парсинг начинается сразу после открытия страницы.
  • Сайт 2 (медленнее): требуется полная загрузка элементов, поэтому установлена задержка 1.5 секунды перед обработкой страницы.

База данных

В базе есть 2 таблицы:

  • SNAB: name (str), price (int), parameters (json)
  • ELCOM: name (str), price (str), image (str), parameters (json)

Установка и запуск

Необязательно, но удобно использовать виртуальную среду в директории проекта.

  1. Создать виртуальную среду:
python -m venv .venv
  1. Активировать среду:
# Linux
source .venv/bin/activate

# Windows
.venv\Scripts\activate
  1. Установить зависимости из requirements.txt:
pip install -r requirements.txt
  1. Установить драйвер для playwright, через который работает парсер:
playwright install
  1. Запустить исполняемый файл:
python main.py

Структура проекта

  • /main.py — главный (исполняемый) файл для запуска скрипта
  • /core.py — запуск драйвера Playwright
  • /SNAB_parser.py — парсер сайта СНАБТЕХМЕТ
  • /ELCOM_parser.py — парсер сайта ELCOM
  • /database — каталог с файлами организации БД
  • /database/models.py — создание БД и моделей
  • /database/requests.py — организация управления БД
  • /Base — каталог с базой данных
  • /Base/database.sqlite3 — файл базы данных
  • /Logging — каталог для логирования ошибок
  • /Logging/logbook.log — файл с логами скрипта

Совет

При запуске в контейнере Docker рекомендуется создать Volume с базой данных, чтобы затем было проще извлечь её из контейнера. Также создайте Volume для logbook.log, если возникнут проблемы при запуске или ошибки во время парсинга — это поможет понять причины.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages