Авито отдаёт историю цен по объявлению — не запрашиваем вовсе #3037

Open
opened 2026-08-21 13:32:21 +00:00 by lekss361 · 0 comments
Owner

Найдено 2026-08-21 сверкой живого браузера со скраппером. Не баг, а неиспользованный источник.

Эндпоинт

Детальная страница объявления сама дёргает:

GET /web/1/realty/price/history/<item_id>?categoryID=24&microcatID=4917&offset=0&limit=40

Отвечает 200. В коде ноль упоминаний price/history — ни в scraper-kit, ни в backend/app.

microcatID кодирует комнатность: 4917 у 2-комнатной, 4929 у 1-комнатной. categoryID=24 — квартиры.

Зачем

История цен — это то, ради чего для ЦИАН заведена отдельная ветка feat/cian-browser-price-history и расписание cian_history_backfill. У Авито то же самое доступно обычным GET с детальной страницы.

Ценность для оценки: снижение цены в объявлении — сильный сигнал о разрыве между запрашиваемой и реальной ценой сделки. Это ровно та величина, которую сейчас моделирует asking_to_sold_ratio косвенно, через сопоставление с ДКП.

Оговорки

  • Запрос идёт с детальной страницы, то есть требует того же контекста и тех же кук. Пока detail-путь отказывает в 91-96% попыток, отдельно этот эндпоинт не заработает — зависимость от задач про ?context= и отпечаток.
  • limit=40 — надо проверить, есть ли пагинация и что отдаётся при длинной истории.
  • Формат ответа не разбирал: браузер получил 200, тело не смотрел. Первый шаг — снять и разобрать структуру.

Приёмка

  • Структура ответа разобрана и задокументирована
  • Понятно, откуда брать microcatID (из карточки или выводится из комнатности)
  • Решено, где хранить — в существующей таблице истории или отдельной
  • Оценено, сколько объявлений реально имеют историю больше одной точки

Приоритет ниже, чем у починки самого detail-пути — сначала он, потом это.

Scope: packages/scraper-kit/src/scraper_kit/providers/avito/.

Найдено 2026-08-21 сверкой живого браузера со скраппером. Не баг, а неиспользованный источник. ## Эндпоинт Детальная страница объявления сама дёргает: ``` GET /web/1/realty/price/history/<item_id>?categoryID=24&microcatID=4917&offset=0&limit=40 ``` Отвечает 200. В коде **ноль упоминаний** `price/history` — ни в `scraper-kit`, ни в `backend/app`. `microcatID` кодирует комнатность: 4917 у 2-комнатной, 4929 у 1-комнатной. `categoryID=24` — квартиры. ## Зачем История цен — это то, ради чего для ЦИАН заведена отдельная ветка `feat/cian-browser-price-history` и расписание `cian_history_backfill`. У Авито то же самое доступно обычным GET с детальной страницы. Ценность для оценки: снижение цены в объявлении — сильный сигнал о разрыве между запрашиваемой и реальной ценой сделки. Это ровно та величина, которую сейчас моделирует `asking_to_sold_ratio` косвенно, через сопоставление с ДКП. ## Оговорки - Запрос идёт **с детальной страницы**, то есть требует того же контекста и тех же кук. Пока detail-путь отказывает в 91-96% попыток, отдельно этот эндпоинт не заработает — зависимость от задач про `?context=` и отпечаток. - `limit=40` — надо проверить, есть ли пагинация и что отдаётся при длинной истории. - Формат ответа не разбирал: браузер получил 200, тело не смотрел. Первый шаг — снять и разобрать структуру. ## Приёмка - [ ] Структура ответа разобрана и задокументирована - [ ] Понятно, откуда брать `microcatID` (из карточки или выводится из комнатности) - [ ] Решено, где хранить — в существующей таблице истории или отдельной - [ ] Оценено, сколько объявлений реально имеют историю больше одной точки Приоритет ниже, чем у починки самого detail-пути — сначала он, потом это. Scope: `packages/scraper-kit/src/scraper_kit/providers/avito/`.
lekss361 added the
data
scope/backend
scrapers
tradein
labels 2026-08-21 13:32:33 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#3037
No description provided.