# Парсеры документации 1С:Предприятие.Элемент Публикация на Infostart: [Парсеры документации 1С:Предприятие.Элемент](https://infostart.ru/1c/articles/2574543/) ![Infostart](https://infostart.ru/bitrix/templates/sandbox_empty/assets/tpl/abo/img/logo.svg) Два парсера для сбора документации с сайта 1cmycloud.com: - `parser.py` - для парсинга "Руководства разработчика" (иерархическое меню) - `parser stdlib.py` - для парсинга "Стандартной библиотеки" (плоская структура) ## 📋 Требования ### Установка зависимостей ```bash pip install -r requirements.txt ``` ### Необходимые компоненты - Python 3.7+ - Google Chrome (для Selenium) - Интернет-соединение ## 🚀 Быстрый старт ### 1. Парсинг Руководства разработчика (`parser.py`) Парсит иерархическую структуру документации с раскрывающимися категориями: ```bash python parser.py --url https://1cmycloud.com/console/help/element/8.1/docs/topics/1c-element-overview/ --username username --password password --use-selenium --visible-browser --save-by-pages --max-pages 10000 --pages-dir ManualDevelop ``` **⚠️ ВАЖНО:** После запуска: 1. Откроется окно браузера Chrome 2. Скрипт автоматически заполнит логин и пароль 3. **ВРУЧНУЮ** нажмите кнопку "Войти" в браузере 4. Дождитесь загрузки страницы документации 5. Парсер автоматически начнет работу **Особенности:** - Выполняет depth-first обход по меню - Раскрывает категории по клику - Пропускает разделы: "Устройство сервера" и "Панель управления сервера" - Сохраняет каждую страницу в отдельную папку ### 2. Парсинг Стандартной библиотеки (`parser stdlib.py`) Парсит плоскую структуру ссылок из меню: ```bash python "parser stdlib.py" --url https://1cmycloud.com/console/help/element/8.1/docs/stdlib/element/ --username username --password password --use-selenium --visible-browser --save-by-pages --max-pages 10000 --pages-dir StdLib ``` **⚠️ ВАЖНО:** Также требует ручного нажатия кнопки "Войти" после заполнения формы! **Особенности:** - Собирает ВСЕ ссылки из меню (рекурсивно) - Обходит страницы по порядку - Подходит для плоской структуры документации ## 📂 Структура выходных данных После парсинга создается: ``` / ├── page_001_Название_страницы/ │ ├── page.html # Исходный HTML │ └── content.md # Извлеченный контент в Markdown ├── page_002_Другая_страница/ │ ├── page.html │ └── content.md └── ... documentation.json # JSON с метаданными всех страниц documentation.txt # Весь текст в одном файле ``` ## ⚙️ Параметры командной строки ### Общие параметры (для обоих парсеров) | Параметр | Описание | По умолчанию | |----------|----------|--------------| | `--url` | URL начальной страницы | см. примеры выше | | `--username` | Логин для авторизации | - | | `--password` | Пароль для авторизации | - | | `--use-selenium` | Использовать Selenium (обязательно!) | false | | `--visible-browser` | Показывать окно браузера | false | | `--save-by-pages` | Сохранять страницы по папкам | false | | `--max-pages` | Максимум страниц для парсинга | 1000 | | `--pages-dir` | Директория для сохранения | `pages` | | `--output` | Имя текстового файла | `documentation.txt` | | `--debug` | Режим отладки (сохранение HTML) | false | ## 🛠️ Вспомогательные скрипты ### 1. Удаление номеров страниц из имен папок ```bash python remove_page_numbers.py <директория> ``` Убирает: - Префикс `page_XXX_` из имен папок - Суффикс ` _ 1С_Предприятие.Элемент` **Пример:** ```bash python remove_page_numbers.py ManualDevelop --apply ``` ### 2. Удаление HTML файлов ```bash python delete_html_files.py <директория> ``` Удаляет все `page.html` файлы, оставляя только `content.md`. **Пример:** ```bash python delete_html_files.py ManualDevelop --apply ``` ### 3. Реорганизация папок по иерархии ```bash python reorganize_folders.py ``` Перемещает папки в иерархическую структуру на основе URL из `documentation.json`. ## 📝 Примеры использования ### Полный цикл работы с Руководством разработчика ```bash # 1. Парсинг (с ручным входом!) python parser.py --url https://1cmycloud.com/console/help/element/8.1/docs/topics/1c-element-overview/ --username username --password password --use-selenium --visible-browser --save-by-pages --max-pages 500 --pages-dir ManualDevelop # 2. Удаление номеров из имен папок python remove_page_numbers.py ManualDevelop --apply # 3. Удаление HTML файлов (если не нужны) python delete_html_files.py ManualDevelop --apply ``` ### Полный цикл работы со Стандартной библиотекой ```bash # 1. Парсинг (с ручным входом!) python "parser stdlib.py" --url https://1cmycloud.com/console/help/element/8.1/docs/stdlib/element/ --username username --password password --use-selenium --visible-browser --save-by-pages --max-pages 5000 --pages-dir StdLib # 2. Реорганизация по иерархии python reorganize_folders.py # 3. Очистка python remove_page_numbers.py StdLib --apply python delete_html_files.py StdLib --apply ```