# Парсер реестров СРО ААС Автоматизированный инструмент для сбора данных из реестров Саморегулируемой организации аудиторов Ассоциация «Содружество» (СРО ААС). ## Возможности - Парсинг всех 14 официальных реестров СРО ААС - Два режима работы: быстрое сканирование (первая страница) и полное сканирование (все страницы) - Экспорт данных в формат Excel (.xlsx) с форматированием - Система логирования и обработки ошибок - Поддержка пагинации и повторных попыток при сбоях ## Поддерживаемые реестры **Действующие члены:** 1. Реестр аудиторов и индивидуальных аудиторов (14,691+ записей) 2. Реестр аудиторских организаций (256+ записей) 3. Реестр квалификационных аттестатов 4. Перечень индивидуальных аудиторов 5. Реестр учебно-методических центров 6. Сведения о подтверждении ОППК 7. Сведения о прохождении ПК руководителем аудита ОЗО ФР **Исключенные члены:** 8. Аудиторы, прекратившие членство 9. Аудиторские организации, прекратившие членство 10. Аннулированные квалификационные аттестаты 11. УМЦ, исключенные из реестра **Дисциплинарные меры:** 12. Меры воздействия к аудиторам 13. Меры воздействия к организациям **Сети:** 14. Российские и международные сети аудиторских организаций ## Установка ```bash # Клонирование репозитория git clone https://github.com/ada-dmitry/osint_parser_ada.git cd osint_parser_ada # Создание виртуального окружения python -m venv venv source venv/bin/activate # Linux/Mac # или venv\Scripts\activate # Windows # Установка зависимостей pip install -r requirements.txt ``` ## Использование ### Интерактивный режим ```bash python main.py ``` Выберите реестр из меню и режим парсинга: - `n` (No) — быстрое сканирование (только первая страница, ~50 записей, 1-2 сек) - `y` (Yes) — полное сканирование (все страницы, все записи, несколько минут) ### Программный режим ```python from parsers.auditors_parser import AuditorsParser from utils.excel_exporter import ExcelExporter # Быстрое сканирование parser = AuditorsParser() data = parser.parse_registry(detailed=False) # Только первая страница # Полное сканирование data = parser.parse_registry(detailed=True) # Все страницы # Экспорт в Excel exporter = ExcelExporter() exporter.export_to_excel(data, "auditors", "output.xlsx") ``` ## Структура проекта ``` osint_parser_ada/ ├── config.py # Конфигурация и URL реестров ├── main.py # CLI-интерфейс ├── parsers/ # Парсеры реестров │ ├── base_parser.py # Базовый класс с пагинацией │ ├── auditors_parser.py # Парсер аудиторов │ ├── organizations_parser.py │ └── generic_parser.py # Универсальный парсер ├── models/ # Модели данных │ ├── organization.py │ ├── auditor.py │ └── ... ├── utils/ # Утилиты │ ├── logger.py # Логирование │ └── excel_exporter.py # Экспорт в Excel └── data/exports/ # Экспортированные файлы ``` ## Технические характеристики - **Python:** 3.8+ - **Зависимости:** requests, beautifulsoup4, lxml, pandas, openpyxl - **Архитектура:** Паттерн Template Method, модульная структура - **Обработка ошибок:** Повторные попытки (3x), логирование всех операций - **Производительность:** ~1.5 сек/страница с задержками для защиты от блокировки ## Конфигурация Основные настройки в `config.py`: ```python PARSER_CONFIG = { "user_agent": "Mozilla/5.0...", "timeout": 30, # Таймаут запроса (сек) "delay_between_requests": 1, # Задержка между запросами (сек) "max_retries": 3 # Максимум повторных попыток } ``` ## Логирование Логи сохраняются в `logs/parser_YYYY-MM-DD.log`: - INFO: Прогресс парсинга, количество найденных записей - WARNING: Пропущенные страницы, проблемы с данными - ERROR: Критические ошибки запросов --- **Источник данных:** [https://sroaas.ru](https://sroaas.ru)