fix(tradein/cian): Циан переименовал MFE карточки ЖК — читать оба имени (#2767) #2804
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#2804
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/2767-fichering-mfe"
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?
Гипотеза про разметку всё-таки верна — но не для тех страниц
После #2798/#2801 обогащение поехало (15 из 25 против 0 из 25 девять суток), но часть страниц продолжала не разбираться, приходя целиком: 682-886 КБ, ни капчи, ни WAF. Живая проба 2026-08-09 показала, что на них лежит:
Старого имени
newbuilding-card-desktop-frontendна такой странице нет вовсе. Циан раскатывает новый фронт карточки ЖК на часть новостроек. Состояние лежит под тем же ключомinitialStateи той же формы:Это и есть ответ про houses_price_dynamics
Последняя строка там — 2026-07-26. Складывались две причины:
realtyValuation.dataпопросту{}— Циан считает динамику раз в месяц и не для всех (проверено: уzhk-svetlyy-ekb-i.cian.ruданные есть и разбираются ТЕКУЩИМ_extract_chart, уzhk-pihtovyy— пусто).Вместе это давало ноль строк при внешне успешном обогащении.
Вторая правка: снята голая подстрока «captcha»
Любая здоровая карточка ЖК грузит скрипт SmartCaptcha, поэтому подстрока есть всегда. На проде это выглядело так:
Здоровый узел, целая страница, никакой капчи — бан по слову. Стена капчи опознаётся своим заголовком «Вы не робот?»: он в списке и на всех 15-килобайтных стенах срабатывал вместе с «captcha», так что детект не теряется, а ложный сигнал уходит.
Строка отказа теперь называет, в каких именно MFE искали, — чтобы следующий такой переезд читался с первой строки лога, а не с третьей итерации.
Test plan
pytest -k "newbuilding or cian"— 250 passed, 1 skippedrealty_valuation_chart)newbuilding_enrich→ строки вhouses_price_dynamicsсвежее 2026-07-26Refs #2767
Живая проба 2026-08-09 по страницам, которые приходят ЦЕЛИКОМ (810-993 КБ, ни капчи, ни WAF) и всё равно не разбираются: zhk-kosmos-ekb-i.cian.ru → MFE на странице: newbuilding-card-desktop-fichering-frontend старого 'newbuilding-card-desktop-frontend' на ней НЕТ вовсе Циан раскатывает новый фронт карточки ЖК на часть новостроек. Состояние лежит под тем же ключом `initialState` и имеет ту же форму: `newbuilding.id`/`name` на месте, `realtyValuation.data.priceDynamics` — тоже. Это объясняет пустую houses_price_dynamics с 2026-07-26. У ЖК, переехавших на новый фронт, график цен есть, но старое имя MFE его не находило; ЖК, оставшиеся на старом фронте, часто просто не имеют графика (rv.data = {}), и вместе это давало ноль строк при внешне успешном обогащении. Заодно снята голая подстрока "captcha" из _ANTIBOT_MARKERS: ЛЮБАЯ здоровая карточка грузит скрипт SmartCaptcha, поэтому она есть всегда, и на проде отказ разбора большой страницы сопровождался баном ЗДОРОВОГО узла с причиной "captcha". Стена капчи опознаётся по своему заголовку «Вы не робот?» — он в списке и срабатывал вместе с "captcha" на всех 15-килобайтных стенах, так что детект не теряется. Строка отказа теперь называет, в каких MFE искали. Тесты: карточка нового фронта разбирается вместе с графиком; стена капчи по-прежнему опознаётся без ложного маркера. Refs #2767done, причина в разборе а не в сети #2767done, причина в разборе а не в сети #2767