feat(tradein/avito): полный обход качает вторичку родным фильтром пути (#3033) #3039
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
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#3039
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/3033-avito-native-secondary"
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?
Summary
fetch_all_secondary(secondary_only=True)строил URL общей выдачи (/kvartiry/prodam/<room-ASgB…>): 100 % страниц (46 573 объявления в ЕКБ), новостройки — в корзину после разбора. Теперь_build_rooms_urlв secondary-режиме (флаг на инстансе на время вызова, сброс вfinally) строит читаемый путь/{city}/kvartiry/prodam/{room_readable}/vtorichka— Авито канонизирует редиректом (проверено автором issue вживую: 2 551 vs 46 573). Query (s,p,pmin,pmax) без изменений — бисекция по цене работает как раньше, но по распределению вторички (побочно чинится калибровка брекетов).last_dropped_nb→AvitoFullLoadCounters.dropped_novostroyki(зеркало cian #1781). При работающем пути ≈0; рост = площадка перестала уважать путь — видно по числу вscrape_runs.counters, а не по тишине.allow_redirectsпо умолчаниюTrue(проверено в workspace-venv, явных переопределений в serp.py/_base.py нет).fetch_around(city-sweep по якорям) иfetch_by_rooms(вызовов нет): постановка про полный обход; city-sweep по геоточкам намеренно берёт оба сегмента.Test plan
backend/tests/test_3033_avito_native_secondary_filter.py(workspace-venv, без сети: подмена_fetch_serp_html): probe-URL всех seed-брекетов =/ekaterinburg/kvartiry/prodam/1-komnatnye/vtorichka+s/p/pmin;secondary_only=False— прежний URL; режим не течёт за вызов; все 7 комнатностей → читаемый префикс безASgB; счётчик вto_dict(). На origin/main 4/6 красных по значению, 2 контроля зелёные.test_serp_city_location_urls / test_avito_serp_city_slug / test_1781 / test_avito_newbuilding_sweep— 26 passed;ruff checkзелёный (scraper-kit форматтером не трогал — он не в хуке и не нормализован).avito_full_loadпосле деплоя —unique_fetched≈ прежний, страниц впятеро меньше,dropped_novostroyki ≈ 0. Еслиdropped_novostroykiостаётся в сотнях — редирект ведёт на общую выдачу, откатывать.Refs #3033