Загрузка данных
Ты работаешь в проекте:
/Users/23865613/IdeaProjects/untitled/adt-markdownify-meta
Контекст:
Проект уже успешно запустился через SberBrowser и создал файлы:
output/ФП SberGeo.СНЛ - META.md
output/README.md
temp_html/ФП SberGeo.СНЛ - META.html
По результату видно, что выгрузка работает: Markdown содержит реальные данные META, в том числе:
- ФП SberGeo.СНЛ - META
- Источник: https://meta.sberbank.ru/meta/earp/functionalSubsystem/236500
- Проверка разделов META
- Новая META
- АрхРепозиторий
- API
- АрхКонтроль
- Функциональная подсистема
- SB92 SberGeo.СНЛ
- Структура
- Атрибуты
- Диаграммы
- Стенды
- Соответствие Стандартам
- Интеграции
- список объектов структуры, например:
Геоинформационная система SberGeo
SberGeo.СНЛ
СНЛ.Sigma
СНЛ.Расчеты
СНЛ.Интеграции
CHU Proxy Signal
snl-ecs-users
snl-layout-backend
Проблема:
Markdown сейчас содержит слишком много интерфейсного шума и плохо структурирован:
- верхнее меню META;
- служебные элементы;
- повторы;
- слова статусов;
- длинная простыня объектов без нормальных секций.
Задача:
Улучшить качество Markdown, НЕ ломая уже рабочий запуск.
Важно:
- Не переписывай проект с нуля.
- Не меняй запуск браузера, если он уже работает.
- Не меняй requirements.txt без необходимости.
- Не добавляй API.
- Не добавляй requests/httpx/aiohttp/urllib.
- Не добавляй token/cookie/login/password.
- Не сохраняй cookies.
- Не сохраняй sessionStorage/localStorage.
- Не удаляй сохранение raw HTML в temp_html/.
- Не удаляй output/README.md.
- Не запускай массовую выгрузку.
- Можно запускать только на одной текущей тестовой ссылке из meta_urls.txt.
Нужно доработать только обработку HTML/Markdown:
1. scripts/html_to_markdown.py
2. при необходимости scripts/markdown_writer.py
3. README.md, если нужно описать качество результата
Что нужно сделать в scripts/html_to_markdown.py:
1. Оставить функцию build_meta_markdown(html: str, url: str) -> dict.
2. Добавить очистку Markdown после конвертации:
- удалить лишние пустые строки;
- удалить строки, которые относятся к интерфейсу и не несут архитектурной пользы;
- убрать повторяющиеся подряд одинаковые строки;
- убрать строки только из символов/мусора;
- оставить русские и английские названия объектов;
- оставить URL источника;
- оставить названия разделов META.
3. Сохранять важные разделы:
- Проверка разделов META
- Новая META
- АрхРепозиторий
- API
- АрхКонтроль
- Функциональная подсистема
- Структура
- Атрибуты
- Диаграммы
- Стенды
- Соответствие Стандартам
- Интеграции
4. Для страницы функциональной подсистемы попытаться сделать Markdown более читаемым:
# <title>
Источник: <url>
---
## Проверка разделов META
<строки проверки, если есть>
## Основная информация
- Тип объекта: Функциональная подсистема
- Название: SB92 SberGeo.СНЛ
## Разделы страницы
- Структура
- Атрибуты
- Диаграммы
- Стенды
- Соответствие Стандартам
- Интеграции
## Структура
- Геоинформационная система SberGeo
- SberGeo.СНЛ
- СНЛ.Sigma
- СНЛ.Расчеты
- СНЛ.Интеграции
- CHU Proxy Signal
- snl-ecs-users
- snl-layout-backend
- и другие найденные объекты
5. Если не получается идеально распознать структуру, не ломай данные:
- лучше сохранить больше полезного текста, чем удалить важное;
- raw HTML всё равно должен оставаться в temp_html/.
6. Добавить внутренние функции, если удобно:
clean_markdown_lines(markdown: str) -> str
remove_duplicate_lines(lines: list[str]) -> list[str]
extract_title(html: str) -> str
extract_useful_meta_sections(markdown: str) -> str
7. После правок выполнить проверку синтаксиса:
python -m py_compile run_exporter.py scripts/config_loader.py scripts/scrape_meta.py scripts/html_to_markdown.py scripts/markdown_writer.py
8. После проверки синтаксиса можно один раз запустить проект на текущей одной ссылке:
python run_exporter.py
9. После запуска показать:
- первые 120 строк output/ФП SberGeo.СНЛ - META.md
- количество строк в Markdown:
wc -l "output/ФП SberGeo.СНЛ - META.md"
- список файлов:
find output -type f -maxdepth 1 -print
find temp_html -type f -maxdepth 1 -print
Формат ответа:
# Улучшение качества Markdown META
## 1. Что было до правки
## 2. Что изменено в html_to_markdown.py
## 3. Какие строки/шум теперь удаляются
## 4. Какие разделы META сохраняются
## 5. Результат py_compile
## 6. Результат тестового запуска
## 7. Первые 120 строк итогового Markdown
## 8. Вывод: достаточно ли результата для MVP