refactor mobile.de parser, fix country mapping, update README

This commit is contained in:
qananasikq
2026-05-04 18:12:10 +03:00
parent edddfc884c
commit 800867b4e6
46 changed files with 2887 additions and 10900 deletions

View File

@@ -1,3 +1,35 @@
# mobile.de Scraper
Парсер [`mobile.de`](https://www.mobile.de/ru).
Парсер [`mobile.de`](https://www.mobile.de/ru).
Сервис для сбора объявлений авто с mobile.de, сохранения в PostgreSQL и регулярного обновления.
## Как идет парсинг
- Парсинг запускается задачами Celery в очереди `mobilede_sync`.
- Стартуем с поисковой ссылки mobile.de (URL с фильтрами: марка, цена, год, пробег и т.д.).
- Выдача разбивается на сегменты (по цене, году, пробегу), чтобы обходить лимиты страниц.
- По каждому сегменту читаются страницы поиска, из них достаются ID и ссылки объявлений.
- По ID/ссылкам загружаются карточки авто, данные маппятся в единый формат и пишутся в БД через upsert.
## Стек
- `FastAPI` — API и служебные ручки
- `Celery + Redis` — очередь задач парсинга
- `PostgreSQL` — хранение авто и изображений
- `Docker Compose` — запуск всех сервисов
## Быстрый запуск
```bash
docker compose up -d --build
```
## Прокси
- В воркере используется прокси-мост: локальный HTTP `127.0.0.1:8899` -> внешний SOCKS5.
- Это помогает стабилизировать доступ к mobile.de и снизить блокировки.
- Параметры прокси задаются через переменные окружения (см. `.env` / `docker-compose.yml`).
## Основные сервисы
- `api` — HTTP API
- `worker` — парсинг и апдейты
- `beat` — планировщик задач
- `postgres` — база данных
- `redis` — брокер очереди