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` — брокер очереди
|