You've already forked parser_1cmycloud
mirror of
https://github.com/vanyagoncharov/parser_1cmycloud.git
synced 2026-06-19 17:18:10 +02:00
6.9 KiB
6.9 KiB
Парсеры документации 1С:Предприятие.Элемент
Публикация на Infostart: Парсеры документации 1С:Предприятие.Элемент
Два парсера для сбора документации с сайта 1cmycloud.com:
parser.py- для парсинга "Руководства разработчика" (иерархическое меню)parser stdlib.py- для парсинга "Стандартной библиотеки" (плоская структура)
📋 Требования
Установка зависимостей
pip install -r requirements.txt
Необходимые компоненты
- Python 3.7+
- Google Chrome (для Selenium)
- Интернет-соединение
🚀 Быстрый старт
1. Парсинг Руководства разработчика (parser.py)
Парсит иерархическую структуру документации с раскрывающимися категориями:
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
⚠️ ВАЖНО: После запуска:
- Откроется окно браузера Chrome
- Скрипт автоматически заполнит логин и пароль
- ВРУЧНУЮ нажмите кнопку "Войти" в браузере
- Дождитесь загрузки страницы документации
- Парсер автоматически начнет работу
Особенности:
- Выполняет depth-first обход по меню
- Раскрывает категории по клику
- Пропускает разделы: "Устройство сервера" и "Панель управления сервера"
- Сохраняет каждую страницу в отдельную папку
2. Парсинг Стандартной библиотеки (parser stdlib.py)
Парсит плоскую структуру ссылок из меню:
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
⚠️ ВАЖНО: Также требует ручного нажатия кнопки "Войти" после заполнения формы!
Особенности:
- Собирает ВСЕ ссылки из меню (рекурсивно)
- Обходит страницы по порядку
- Подходит для плоской структуры документации
📂 Структура выходных данных
После парсинга создается:
<pages-dir>/
├── 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. Удаление номеров страниц из имен папок
python remove_page_numbers.py <директория>
Убирает:
- Префикс
page_XXX_из имен папок - Суффикс
_ 1С_Предприятие.Элемент
Пример:
python remove_page_numbers.py ManualDevelop --apply
2. Удаление HTML файлов
python delete_html_files.py <директория>
Удаляет все page.html файлы, оставляя только content.md.
Пример:
python delete_html_files.py ManualDevelop --apply
3. Реорганизация папок по иерархии
python reorganize_folders.py
Перемещает папки в иерархическую структуру на основе URL из documentation.json.
📝 Примеры использования
Полный цикл работы с Руководством разработчика
# 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
Полный цикл работы со Стандартной библиотекой
# 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