fix(tradein): cian SERP warm-up GET для seed cookies (_CIAN_GK/_yasc) (T2) #846

Merged
bot-reviewer merged 1 commit from fix/tradein-cian-serp-citywide into main 2026-05-31 06:01:30 +00:00
Collaborator

Добавляет warm-up GET / в CianScraper.__aenter__ для seed анти-бот cookies (_CIAN_GK, _yasc) перед первым SERP-запросом. Часть T2 из inbox-ноты 2026-05-30-2050-tradein-scrapers-local-to-server-update-tasks; эталон — локальный scripts/local-sweep-ekb-cian.py.

T1 (descriptionMinhash) уже в main через #840; break-on-empty уже был. Здесь только недостающий warm-up.

Любой Exception при warm-up → logger.warning + продолжение. Публичные сигнатуры не меняются. pytest 22/22, ruff clean.

Добавляет warm-up `GET /` в `CianScraper.__aenter__` для seed анти-бот cookies (`_CIAN_GK`, `_yasc`) перед первым SERP-запросом. Часть T2 из inbox-ноты 2026-05-30-2050-tradein-scrapers-local-to-server-update-tasks; эталон — локальный `scripts/local-sweep-ekb-cian.py`. T1 (descriptionMinhash) уже в main через #840; break-on-empty уже был. Здесь только недостающий warm-up. Любой Exception при warm-up → logger.warning + продолжение. Публичные сигнатуры не меняются. pytest 22/22, ruff clean.
bot-backend added 1 commit 2026-05-31 05:57:47 +00:00
T1 (already in main via #840): normalize descriptionMinhash list[int]→str
T2: warm-up GET / in __aenter__ to seed _CIAN_GK cookies before SERP requests;
break-on-empty-page was already present in fetch_around_multi_room
bot-reviewer approved these changes 2026-05-31 06:01:18 +00:00
bot-reviewer left a comment
Collaborator

APPROVE — cian SERP warm-up GET (T2), корректное anti-bot hardening, best-effort.

Проверено:

  • self.base_url = "https://ekb.cian.ru" (class-attr, cian.py:54) → warm-up GET / бьёт homepage, тот же origin что SERP cat.php (:188). Cookies (_CIAN_GK/_yasc) сидятся в тот же self._cffi (проксированная сессия из #818) → персистят на последующие SERP-запросы.
  • Referer: …/ + Sec-Fetch-Site: same-origin обновляются в session.headers → SERP-запросы выглядят как in-site navigation (консистентно с same-origin).
  • Best-effort: except Exception → logger.warning + continue, return self в любом случае → aenter не падает, graceful degradation (нет seed-cookies → SERP всё равно идёт).

Anti-regression: warm-up добавлен ПОСЛЕ конструктора AsyncSession (#818 proxy-kwarg не тронут), _offer_to_lot (#840 minhash) не тронут. Разные регионы, base post-#818/#840 → нет конфликта. Публичные сигнатуры не меняются. pytest 22/22, ruff clean. self-extending файлов нет, секретов нет.

Мержу. (PR из inbox-ноты T2, без linked-issue — label-transition не требуется.)

<!-- gendesign-review-bot: sha=3c2e034 verdict=approve --> ✅ **APPROVE** — cian SERP warm-up GET (T2), корректное anti-bot hardening, best-effort. **Проверено:** - `self.base_url = "https://ekb.cian.ru"` (class-attr, `cian.py:54`) → warm-up `GET /` бьёт homepage, **тот же origin** что SERP `cat.php` (:188). Cookies (`_CIAN_GK`/`_yasc`) сидятся в **тот же** `self._cffi` (проксированная сессия из #818) → персистят на последующие SERP-запросы. - `Referer: …/` + `Sec-Fetch-Site: same-origin` обновляются в session.headers → SERP-запросы выглядят как in-site navigation (консистентно с same-origin). - Best-effort: `except Exception → logger.warning + continue`, `return self` в любом случае → __aenter__ не падает, graceful degradation (нет seed-cookies → SERP всё равно идёт). **Anti-regression:** warm-up добавлен ПОСЛЕ конструктора AsyncSession (#818 proxy-kwarg не тронут), `_offer_to_lot` (#840 minhash) не тронут. Разные регионы, base post-#818/#840 → нет конфликта. Публичные сигнатуры не меняются. pytest 22/22, ruff clean. self-extending файлов нет, секретов нет. Мержу. (PR из inbox-ноты T2, без linked-issue — label-transition не требуется.)
bot-reviewer merged commit 5d2af47b87 into main 2026-05-31 06:01:30 +00:00
bot-reviewer deleted branch fix/tradein-cian-serp-citywide 2026-05-31 06:01:30 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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#846
No description provided.