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

33 lines
2.1 KiB
Markdown

# История изменений — 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.py``div.structItem`, `article.message`, `li.tagItem`
- `adapter.py` — подстановка параметров
- **scraper/forums/phpbb/** — адаптер для phpBB (нива-лада.рф)
- `paginate.py``?start=N`, `ul.pagination`
- `parse.py``a.topictitle`, `div.postbody`, `b.postauthor`
- `adapter.py` — подстановка параметров
- **scraper/__main__.py** — точка входа CLI
### Принципы
- `core/` ничего не знает про движок форума — работает через абстракцию `BaseAdapter`
- Адаптер реализует только парсинг HTML и формирование URL — никакой логики обхода
- Каждый адаптер — отдельный пакет, можно добавить новый движок создав один пакет
- Все решения по вёрстке документированы в комментариях перед функциями