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

165 lines
6.9 KiB
Markdown

# Парсеры документации 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
```
**⚠️ ВАЖНО:** Также требует ручного нажатия кнопки "Войти" после заполнения формы!
**Особенности:**
- Собирает ВСЕ ссылки из меню (рекурсивно)
- Обходит страницы по порядку
- Подходит для плоской структуры документации
## 📂 Структура выходных данных
После парсинга создается:
```
<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. Удаление номеров страниц из имен папок
```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
```