1
0
mirror of https://github.com/vanyagoncharov/parser_1cmycloud.git synced 2026-06-19 17:18:10 +02:00
Files
vanyagoncharov b678a6081e Update README.md
2026-02-10 10:46:38 +03:00

6.9 KiB

Парсеры документации 1С:Предприятие.Элемент

Публикация на Infostart: Парсеры документации 1С:Предприятие.Элемент

Infostart

Два парсера для сбора документации с сайта 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

⚠️ ВАЖНО: После запуска:

  1. Откроется окно браузера Chrome
  2. Скрипт автоматически заполнит логин и пароль
  3. ВРУЧНУЮ нажмите кнопку "Войти" в браузере
  4. Дождитесь загрузки страницы документации
  5. Парсер автоматически начнет работу

Особенности:

  • Выполняет 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