mirror of
https://github.com/ada-dmitry/osint_parser_ada.git
synced 2026-09-24 01:10:20 +00:00
5.7 KiB
5.7 KiB
Парсер реестров СРО ААС
Автоматизированный инструмент для сбора данных из реестров Саморегулируемой организации аудиторов Ассоциация «Содружество» (СРО ААС).
Возможности
- Парсинг всех 14 официальных реестров СРО ААС
- Два режима работы: быстрое сканирование (первая страница) и полное сканирование (все страницы)
- Экспорт данных в формат Excel (.xlsx) с форматированием
- Система логирования и обработки ошибок
- Поддержка пагинации и повторных попыток при сбоях
Поддерживаемые реестры
Действующие члены:
- Реестр аудиторов и индивидуальных аудиторов (14,691+ записей)
- Реестр аудиторских организаций (256+ записей)
- Реестр квалификационных аттестатов
- Перечень индивидуальных аудиторов
- Реестр учебно-методических центров
- Сведения о подтверждении ОППК
- Сведения о прохождении ПК руководителем аудита ОЗО ФР
Исключенные члены: 8. Аудиторы, прекратившие членство 9. Аудиторские организации, прекратившие членство 10. Аннулированные квалификационные аттестаты 11. УМЦ, исключенные из реестра
Дисциплинарные меры: 12. Меры воздействия к аудиторам 13. Меры воздействия к организациям
Сети: 14. Российские и международные сети аудиторских организаций
Установка
# Клонирование репозитория
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
Использование
Интерактивный режим
python main.py
Выберите реестр из меню и режим парсинга:
n(No) — быстрое сканирование (только первая страница, ~50 записей, 1-2 сек)y(Yes) — полное сканирование (все страницы, все записи, несколько минут)
Программный режим
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:
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