Версия 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)
Необязательно, но удобно использовать виртуальную среду в директории проекта.
- Создать виртуальную среду:
python -m venv .venv- Активировать среду:
# Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate- Установить зависимости из
requirements.txt:
pip install -r requirements.txt- Установить драйвер для
playwright, через который работает парсер:
playwright install- Запустить исполняемый файл:
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, если возникнут проблемы при запуске или ошибки во время парсинга — это поможет понять причины.