Files
LLM-UI/scraper/history/001-initial-structure.md
T
naeel 5c142096de scraper: новая архитектура — core/ + forums/ (BaseAdapter, XenForo, phpBB)
- core/ — общий слой: fetch, throttle, output, state, runner
- forums/base.py — абстрактный BaseAdapter
- forums/xenforo/ — адаптер для XenForo (vwts.ru)
- forums/phpbb/ — адаптер для phpBB (нива-лада.рф)
- __main__.py — точка входа CLI
- history/001-initial-structure.md — журнал изменений

Также на ВМ (не в этом коммите):
- lada_scraper/parse.py — пропуск sticky-тем при многопоточном парсинге
2026-06-06 11:46:57 +04:00

2.1 KiB

История изменений — scraper/

001 — 2026-06-06: Начальная структура

Создано

  • scraper/core/ — общий слой, независимый от движка форума

    • fetch.py — HTTP GET с ретраями, автоопределение бана
    • throttle.py — координация задержек между потоками
    • output.py — запись JSONL, ротация по N тем
    • state.py — сохранение/восстановление состояния (пауза/продолжение)
    • runner.py — ThreadPoolExecutor, единый цикл обхода через адаптер
  • scraper/forums/base.py — абстрактный базовый класс адаптера форума

    • Единый интерфейс: count_pages(), parse_topics(), parse_posts(), page_url(), topic_url()
  • scraper/forums/xenforo/ — адаптер для XenForo (vwts.ru)

    • paginate.py/page-N, div.pageNav
    • parse.pydiv.structItem, article.message, li.tagItem
    • adapter.py — подстановка параметров
  • scraper/forums/phpbb/ — адаптер для phpBB (нива-лада.рф)

    • paginate.py?start=N, ul.pagination
    • parse.pya.topictitle, div.postbody, b.postauthor
    • adapter.py — подстановка параметров
  • scraper/__main__.py — точка входа CLI

Принципы

  • core/ ничего не знает про движок форума — работает через абстракцию BaseAdapter
  • Адаптер реализует только парсинг HTML и формирование URL — никакой логики обхода
  • Каждый адаптер — отдельный пакет, можно добавить новый движок создав один пакет
  • Все решения по вёрстке документированы в комментариях перед функциями