diff --git a/tradein-mvp/backend/data/sql/175_scrape_schedules_seed_domclick_detail_backfill.sql b/tradein-mvp/backend/data/sql/175_scrape_schedules_seed_domclick_detail_backfill.sql index 5f73cdb3..99cc76ca 100644 --- a/tradein-mvp/backend/data/sql/175_scrape_schedules_seed_domclick_detail_backfill.sql +++ b/tradein-mvp/backend/data/sql/175_scrape_schedules_seed_domclick_detail_backfill.sql @@ -38,10 +38,13 @@ -- same-site SERP-origin navigation cadence from PR #2430 -- QRATOR is -- reputation-based, not purely rate-based, but a more human cadence -- reduces the odds of tripping it in the first place. --- max_consecutive_blocks -- 3 (vs Avito's 5): DomClick has no IP-rotation recovery --- on block (one dedicated residential proxy, not a pool) -- aborting --- sooner avoids hammering an already-reputation-damaged proxy/session --- and preserves it for the next scheduled window. +-- max_consecutive_blocks -- 3 (vs Avito's 5): aborting sooner avoids hammering an +-- already-reputation-damaged proxy/session and preserves it for the +-- next scheduled window. NB the original rationale here ("one +-- dedicated residential proxy, not a pool") is obsolete: migration +-- 253 (#2800) dropped the reservation, and the backfill was wired +-- into the shared pool in PR #3222 -- all four nodes carry +-- provider_affinity='any'. -- -- Seeded with enabled=false: activation is a deliberate, separate manual step after -- this migration deploys and the orchestrator is smoke-tested against a live cookie diff --git a/tradein-mvp/packages/scraper-kit/src/scraper_kit/providers/domclick/serp.py b/tradein-mvp/packages/scraper-kit/src/scraper_kit/providers/domclick/serp.py index d7c92729..00cfe912 100644 --- a/tradein-mvp/packages/scraper-kit/src/scraper_kit/providers/domclick/serp.py +++ b/tradein-mvp/packages/scraper-kit/src/scraper_kit/providers/domclick/serp.py @@ -327,10 +327,12 @@ class DomClickScraper(BaseScraper): комнатности 2+ не собирались никогда. Замер 19.08 по активным объявлениям: студий 575, однушек 408, двушек 1, трёшек 0; у соседних площадок 2+ комнат — около двух третей выдачи. - Сдвиг НЕ лечит блок, он распределяет то, что успевает собраться, по - всем корзинам вместо одной. Работает при единственном свободном узле — - в отличие от ротации lease, которой сейчас упираться некуда: в пуле 3 - включённых узла, 2 забанены Домкликом. + Сдвиг НЕ лечит обрыв, он распределяет то, что успевает собраться, + по всем корзинам вместо одной, и работает даже когда свободен один + узел. Ротация lease тут ни при чём: свип кладёт не счётчик провалов, + а break ниже по первому же DomClickBlockedError (#2854). В пуле + четыре включённых узла, у всех provider_affinity='any' — + выделенного домклик-прокси нет с миграции 253 (#2800). skip_buckets: корзины, уже собранные предыдущим оборванным прогоном (#3118, чекпоинт done_buckets) — по ним ни одного запроса. Вместе со сдвигом #2854 это превращает случайную ротацию в систематический