9b9cc99c11
fix(avito): post-merge polish — unify fetch_mode guard + empty-render guard ( #1811 )
...
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
Косметические минор'ы из ревью PR #1809 (avito SERP → BrowserFetcher),
функционально без изменений:
- __aenter__: settings.scraper_fetch_mode != "curl_cffi" → == "browser"
(унификация с scrape_pipeline.py и avito_detail_backfill.py; consistency
при гипотетическом 3-м значении режима).
- _fetch_serp_html_browser: явный guard `if not html: return None` — пустой
рендер (таймаут sidecar'а) больше не утекает как «валидный» HTML; caller
(fetch_around) трактует None как конец пагинации.
- scrape_pipeline.py: logger.debug на shared-browser sweep-путях — cffi-fallback
пропускается (by design), логируем для observability при firewall.
- test_avito_browser_mode.py: переформулирован вводящий в заблуждение коммент
про _cffi is None (direct _browser assignment bypasses __aenter__).
Refs #1811
2026-06-26 12:20:13 +05:00
4eaf184d0e
fix(avito): graceful sidecar HTTP 500/503 in browser SERP fetch ( #1790 )
...
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / deploy (push) Successful in 58s
Deploy Trade-In / changes (push) Successful in 10s
Deploy Trade-In / test (push) Successful in 1m25s
Deploy Trade-In / build-backend (push) Successful in 2m0s
Classify tradein-browser sidecar HTTP 500/503 in _fetch_serp_html_browser and route into existing rotation/retry machinery: soft-ban → IP rotation, transient → bounded backoff, both exhausted → AvitoRateLimitedError (graceful mark_banned, partial preserved) instead of mark_failed. Fixes run-#356 class where one late 500 nuked a run that had saved 3186 listings.
Refs #1790
2026-06-25 06:47:41 +00:00
93f7c9ae3f
feat(scrapers): avito SERP дефолт на BrowserFetcher (camoufox), curl_cffi fallback ( #1805 )
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
2026-06-19 20:42:04 +03:00
687c9e5e9d
fix(avito): proactive IP rotate at sweep start + raise max_rotations 2->4 (Datadome ban recovery)
CI / changes (pull_request) Successful in 6s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
2026-06-17 23:35:24 +03:00
441e48141b
feat(tradein): avito SERP via BrowserFetcher behind scraper_fetch_mode ( #901 )
...
Deploy Trade-In / changes (push) Successful in 4s
Deploy Trade-In / build-frontend (push) Has been skipped
Deploy Trade-In / build-browser (push) Has been skipped
Deploy Trade-In / test (push) Successful in 31s
Deploy Trade-In / build-backend (push) Successful in 44s
Deploy Trade-In / deploy (push) Successful in 36s
Co-authored-by: bot-backend <bot-backend@gendsgn.local>
Co-committed-by: bot-backend <bot-backend@gendsgn.local>
2026-05-31 16:49:35 +00:00