From 88f422c07b9d6f1ffe5f31e67378b7c5e5890e38 Mon Sep 17 00:00:00 2001 From: bot-backend Date: Wed, 9 Sep 2026 09:48:43 +0300 Subject: [PATCH] =?UTF-8?q?fix(msk-collector):=20=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=86=D0=B0=20=D0=B2=D1=8B=D0=B4=D0=B0=D1=87=D0=B8?= =?UTF-8?q?=20=E2=80=94=2050=20=D0=BA=D0=B0=D1=80=D1=82=D0=BE=D1=87=D0=B5?= =?UTF-8?q?=D0=BA,=20=D0=BD=D0=B5=2060?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PAGE_SIZE=60 был взят из потолка 30x60=1800, а не измерен. Реальная выдача Москва+МО отдаёт 50 на страницу, поэтому planned_pages = ceil(count/60) не запрашивал последние ~17% каждого коридора: по закрытым коридорам счётчик Авито обещал 34 753, собрано 28 352. Это ровно тот молчаливый недобор, который читается как «покрыто всё»: коридор помечался done, дойдя до расчётной страницы, хотя выдача не кончилась. С 50 потолок пагинации даёт 1500 на запрос — совпадает с дефолтным --target-count, так что коридоры бисекции по-прежнему добираются целиком. --- _wt-mskcol/tradein-mvp/scripts/local-avito-msk/collect.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/_wt-mskcol/tradein-mvp/scripts/local-avito-msk/collect.py b/_wt-mskcol/tradein-mvp/scripts/local-avito-msk/collect.py index 945f959b..f172b10b 100644 --- a/_wt-mskcol/tradein-mvp/scripts/local-avito-msk/collect.py +++ b/_wt-mskcol/tradein-mvp/scripts/local-avito-msk/collect.py @@ -46,8 +46,12 @@ DEFAULT_BASE_URL = ( "?f=ASgBAgICA0SSA8YQ5geMUuDC3c0CgOkP" ) -PAGE_SIZE = 60 # карточек на странице выдачи -MAX_PAGES = 30 # потолок пагинации Авито → 30*60 = 1800 на один запрос +# Замерено живым проходом (не из документации): выдача Москва+МО отдаёт 50 карточек +# на страницу. Пока здесь стояло 60, planned_pages считал count/60 и не запрашивал +# последние ~17% каждого коридора — 34 753 по счётчику против 28 352 собранных. +# Молчаливое усечение читается как «покрыто всё», поэтому число проверяется живьём. +PAGE_SIZE = 50 # карточек на странице выдачи +MAX_PAGES = 30 # потолок пагинации Авито → 30*50 = 1500 на один запрос HARD_CAP = PAGE_SIZE * MAX_PAGES PRICE_FLOOR = 500_000 # нижняя граница осмысленного коридора, ₽