Commit Graph

2 Commits

Author SHA1 Message Date
Дмитрий cb688c334f fix(автоподбор шаг2): не плодить фальшивки из обрезков + надёжнее парсер 2ГИС
Два бага, вскрытых живым прогоном по КрасЛомбару (оба в обработке, не в xfetch):

1. Достройка коротких номеров лепила фальшивку из обрезка полного номера:
   сайт делит номер на tel:+7 (391) 271 и tel:271-33-33. Обрезок 7391271
   (страна+код города) ошибочно достраивался в 73917391271. Теперь обрезок
   «7/8 + код города» распознаётся и выкидывается; настоящие локальные
   (включая московские 771-..) — целы. Логику вынес в classifyShort/areaCode.

2. parseBranchList брал ссылку филиала только из href — на части прорисовок
   2ГИС ссылка лежит в JSON-данных, филиалы терялись. Берём путь /city/firm/<id>
   откуда угодно (с дедупом).

TDD: Autopodbor 49/49.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 13:27:27 +03:00
Дмитрий 1b76cfec15 feat(автоподбор шаг2): справочники 2ГИС через xfetch.ru
Антибот 2ГИС бьём сервисом xfetch.ru (render:true, timeout:20 —
без timeout страница не дорисовывается). Доказано на живом КрасЛомбаре:
поиск → 12 филиалов → телефон + адрес каждой карточки.

- PageFetcher — граница «достать HTML» (тестируется без сети)
- XfetchClient — POST к xfetch, декод base64; без ключа молча пусто
- XfetchDirectoryFetcher — список→филиалы→карточки через DirectoryParser
- DirectoryParser — чтение списка и карточки 2ГИС (был в хвостах)
- config services.xfetch + .env.example; ключ только в .env (gitignored)

Яндекс.Карты — отдельно (другой формат URL карточек). TDD: Autopodbor 46/46.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 12:38:18 +03:00