36 lines
2.0 KiB
Markdown
36 lines
2.0 KiB
Markdown
# mobile.de Scraper
|
|
|
|
Парсер [`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` — брокер очереди
|