projects/org/@biz-lideravto/it/euroauto/docs/SCRAPING.md

ТЗ: Сбор данных с euroauto.ru

Версия: 3.1
Дата: 2026-03-25
Статус: Pass 1 в работе — 59% (6 860 / 11 632)


← Назад к импорту


Цель

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


Источник

Сайт: spb.euroauto.ru

Структура URL:

/catalog/{категория}/brand-{марка}/model-{модель}/modification-{мод}/?page=N

URL кодирует ключ совместимости. Одна деталь на страницах нескольких моделей = совместима с ними.


Масштаб

Параметр Значение
Листинговых URL 11 632
Категорий деталей 149
Марок грузовиков 7
Brand/model комбинаций 14
Ожидаемых уникальных деталей ~60 000–80 000

Данные — что собираем и откуда

Из HTML карточки товара на листинге

Поле HTML источник Пример
name_full itemprop="description" content Топливный насос Auger 71593
brand data-datalayer-product.brand Auger
price data-datalayer-product.price 8302
href строится из original_id euroauto.ru/part/new/71593/
attr itemprop="name" content нижний, левый, d=55мм
country card__param country Германия

Вычисляется из уже собранных данных (без пересъёма)

Поле Источник Пример
oid из href/part/new/71593/ 71593
article последнее слово name_full 71593
image_url из oidfile.euroauto.ru/.../parts/new/{oid}/1.jpg ✅ 100%
category_ea из source/catalog/{xxx}/ nasosy-toplivnye-670
truck_brand из sourcebrand-{xxx} scania
truck_model из sourcemodel-{xxx} 5-serie
truck_mod из sourcemodification-{xxx} R

Примечание: 23% URL не содержат modification — это нормально: деталь подходит всем модификациям модели.

Классификация деталей (вычисляется из brand)

Новый / БУ:
Все листинговые URL категорий грузовиков содержат только новые детали — href всегда /part/new/{oid}/.
Поле is_used не нужно: значение всегда false.

Оригинал / Бренд / Аналог:
Определяется по полю brand без дополнительного парсинга:

Тип Бренды Логика
original DAF, Volvo, Mercedes Benz, Scania, MAN, Renault, Iveco brand совпадает с маркой грузовика
brand Febi truck, Sampa, Auger, DT Spare Parts, Wabco, SKF, Gates, Bosch, Mann, Hella, Mahle, NRF truck, Vaden, EBS, ROSTAR, TruckExpert, Emmerre, Covind, Startec, Starkmeister, SORL, KS truck, Kahveci, Marshall известные OEM-поставщики
analog всё остальное TOPCOVER, Alfa Car, TangDE, XYG truck, S&K, AGC, ...

Список brand пополняется вручную по мере появления новых брендов в данных.
Классификация выполняется в build.py при построении parts.csv.

Что НЕ нужно собирать дополнительно

Что Почему не нужно
OEM / кросс-номера Артикул уже есть в name_full (99% записей)
parts_info (текст из карточки) Дублирует совместимость из URL
Страницы товаров (Pass 2) Все нужные данные есть на листинге или вычисляются
Признак новый/БУ Все детали новые — /part/new/ в href
Признак оригинал/бренд/аналог Вычисляется из brand в build.py

Статус сбора (Pass 1)

Что скачано

Метрика Значение
Прогресс 6 860 / 11 632 (59%)
Записей 141 672
Уникальных деталей 31 967
С кроссом (2+ моделей) 5 129
Макс. кросс 10 моделей
Категорий покрыто 114 / 149

Заполненность текущих записей (формат v7)

Поле Статус
name_full ✅ 100% (с артикулом в 99%)
brand ✅ 100%
price ✅ 100%
href ✅ 100%
source ✅ 100%
oid вычисляется из href — 100%
truck_brand/model вычисляется из source — 100%
truck_mod вычисляется из source — 77% (23% URL без modification)
image_url строится из oid — 100%
attr ❌ нет в v7, нужен HTML (желательно)
country ❌ нет в v7, нужен HTML (желательно)

Что ещё не скачано (35 категорий, ~4 772 страниц)

sistemy-podachi-vozduha, sistemy-smazki, sistemy-vypuska,
startery, stoyki-stabilizatora, stseplenie,
stupitsy, svechi, termostaty,
tnvd, toplivnaya-sistema, toplivnye-filtry,
toplivnye-shlangi, tormoznaya-pnevmosistema, tormoznaya-sistema,
tormoznye-barabany, tormoznye-diski, tormoznye-kolodki,
tormoznye-supporty ... (35 итого)

Это крупные категории: тормоза, ТНВД, фильтры, термостаты, сцепление — без них каталог неполный.


Итоговая схема данных

parts — уникальные детали

oid          PK    из href /part/new/{oid}/
name_full          "Топливный насос Auger 71593"
article            "71593" (из name_full)
attr               "нижний, d=55мм" (из HTML, желательно)
brand              производитель
part_type          original / brand / analog (вычисляется из brand)
price              цена (руб)
href               ссылка euroauto.ru
image_url          file.euroauto.ru/v2/file/parts/new/{oid}/1.jpg
country            страна (из HTML, желательно)
category_ea        "nasosy-toplivnye-670"
category_ru        маппинг через TAXONOMY_EUROAUTO.csv
system             из TAXONOMY.csv
node               из TAXONOMY.csv

compatibility — деталь × грузовик

oid               FK → parts.oid
truck_brand       — scania / volvo / man / ...
truck_model       — 5-serie / fh / actros / ...
truck_mod         — R / P / G / ... (буква кузова, если есть)
source_url        — исходный URL (для отладки)

PK: (oid, truck_brand, truck_model, truck_mod)

cross_table — кросс: тип × модель

category_ea
truck_brand
truck_model
truck_mod
part_oids         — список oid через запятую
count

PK: (category_ea, truck_brand, truck_model, truck_mod)

Скрипты

Скрипт Статус Назначение
dl/scraper.py v8 ✅ Готов Pass 1: листинги (полный формат + attr + country)
build.py 🔲 Написать JSONL → parts.csv + compatibility.csv + cross_table.csv

Следующие шаги

1. Написать build.py  обработать текущие 141 672 записей:
     - вычислить oid, category_ea, truck_brand/model/mod
     - классифицировать part_type по brand (original/brand/analog)
     - дедуплицировать по oid
     - собрать compatibility
     - построить cross_table

2. Перезагрузить браузер на PC

3. Запустить scraper v8  досдать оставшиеся 35 категорий (~4 772 страниц)
   Вариант А: с нуля (echo "done=0")  получить attr + country для всех
   Вариант Б: --resume с позиции 6860  только недостающие категории, быстрее

4. Добавить новые записи в parts + compatibility

5. Импорт в Drupal через dru_lider_importer