Skip to content

bug: top_popular/top_related экспортируются пустыми — корневая причина (DOM≠экспорт) не закрыта фиксами #33/#39 #62

Description

@axisrow

Симптом

top_popular и top_related скачиваются как header-only CSV (0 строк данных), при том что таблица в браузере на той же вкладке показывает ~200 строк с ненулевыми числами. dynamics и regions в тех же прогонах приходят полными.

Первоначальное воспроизведение — замер #2 в axisrow/wordstat-trends (2026-08-21): 0 строк во всех трёх прогонах, все три фразы; детали и побайтовая проверка файлов в docs/DATA.md, раздел «Топы запросов».

Почему это не закрыто существующими issue

Цепочка до сих пор гасила симптом, а не причину:

Итог текущего состояния: пустой top_related не роняет сбор и виден в манифесте, но данными не становится. Ретрай по CSV-строкам (#33) либо упирается в таймаут (#38), либо оба скачивания дают один и тот же header-only файл. Корневая причина — расхождение момента готовности экспорта и момента появления строк в DOM — не исследована и не исправлена.

Что это блокирует downstream

В wordstat-trends top_related — единственный источник рёбер графа запросов («похожие запросы» Вордстата) для Фазы 3 (автооткрытие трендов). Без него заблокированы sub-issues axisrow/wordstat-trends#81 и #82 (обход графа). top_popular также не задействован.

Что сделать

  1. Воспроизвести на текущем main (после fix: keep collecting after empty top retry timeout #39/feat(cli): --strict-exit, empty views as partial, weekly period limit docs #60): подтверждает ли живой прогон всё ещё пустые топовые виды, или после рефакторингов fix: select popular subview across phrase batches #42–refactor: split _collect_one view loop #55 поведение изменилось. Если пустота ушла — закрыть issue с фиксирующим прогоном.
  2. Если воспроизводится: выяснить механизм — чем момент готовности CSV-экспорта отличается от момента отрисовки строк. Гипотезы из bug: top_popular/top_related экспортируются пустыми при 200 строках в DOM (DOM≠экспорт, воспроизведено живьём 2/2) #31: гонка «скачать↔таблица», другой URL/состояние страницы в момент клика, платформа отдаёт header-only до завершения подгрузки данных таблицы. Инструмент уже есть: PR fix(collector): attach page-state snapshot to live failure errors #59 аттачит page-state snapshot к ошибкам.
  3. Учесть regression: ретрай пустого топового экспорта (PR #33) уходит в DownloadTimeoutError и обрушивает весь сбор #38: повторное скачивание того же вида не детектируется дифом снапшота каталога (то же имя файла) — ретрай как класс обхода требует отдельного решения (уникализация имени, очистка каталога, поллинг mtime/size).

Артефакты

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions