fix(scrapers): avito pipeline — новостройки house graceful + AvitoBlockedError per-item не крашит прогон (#1820) #1822
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1822
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/avito-pipeline-novostroyki-blocks"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #1820. Найдено при verification-прогоне (browser-mode).
Фикс 1 — новостройки house-страница (avito_houses.py)
Новостройки
/catalog/novostroyki/...не имеют виджетаhousePage(другая структура:developmentPageflat-widget, характеристики вaboutDevelopment.tabs[*].expandParams). Раньше → ValueError → houses_failed-краш.Фикс:
_parse_development_page()+_parse_development_or_skip()— есть developmentPage → partial parse (ext_id/адрес/coords/тип/лифты/застройщик); нет, но URL-новостройка → graceful warning + минимальный HouseInfo (без ValueError); вторичка без housePage → по-прежнему ValueError (регрессия шейпа). Фикстура парсится: type=monolith, лифты 42/60, developer=Талан.Фикс 2 — AvitoBlockedError per-item (scrape_pipeline.py)
3 enrichment-цикла (houses/detail/house-from-detail) ловят
AvitoBlockedError/AvitoRateLimitedErrorпер-item (counters, не raise). Общийenrich_consecutive_blocks, порог 3 подряд → abort enrichment + вернуть PipelineResult с собранным (не краш). SEARCH-фаза по-прежнему propagate (без листингов прогон бессмыслен). Listings всегда сохранены.Тесты
388 passed (avito-сабсет). +6 тестов (3 houses новостройка + 3 pipeline block-handling). 2 fail/7 err = pre-existing psycopg2-env (подтверждено на main, не регрессия).
На ревью
/catalog/novostroyki/).