mirror of
https://github.com/ada-dmitry/osint_parser_ada.git
synced 2026-09-24 01:10:20 +00:00
12d5c6eaffc5e4d426386ea40d86ffac618850db
- Implemented DisciplinaryAction model for tracking disciplinary measures. - Created Organization model to represent auditing organizations with relevant details. - Developed TrainingCenter model for educational and methodological centers. - Added methods to convert models to dictionaries for easy export. feat: Implement parsers for auditors and organizations - Developed AuditorsParser to scrape and parse auditor registry data. - Created OrganizationsParser for scraping auditing organizations' registry. - Implemented GenericRegistryParser for handling generic tabular data. chore: Set up base parser functionality - Established BaseParser class with common methods for making requests and parsing HTML. - Added pagination handling and detailed page parsing capabilities. feat: Implement Excel export functionality - Created ExcelExporter class for exporting data to Excel files with formatting options. - Added support for exporting multiple sheets and organization data specifically. chore: Add logging utilities - Implemented setup_logger function for consistent logging across the application. - Configured logging to output to both console and file. chore: Update requirements and scripts - Added necessary dependencies for parsing, Excel handling, and logging. - Created run.sh and run.fish scripts for easy execution of the parser.
Парсер реестров СРО ААС
Автоматизированный инструмент для сбора данных из реестров Саморегулируемой организации аудиторов Ассоциация «Содружество» (СРО ААС).
Возможности
- Парсинг всех 14 официальных реестров СРО ААС
- Два режима работы: быстрое сканирование (первая страница) и полное сканирование (все страницы)
- Экспорт данных в формат Excel (.xlsx) с форматированием
- Система логирования и обработки ошибок
- Поддержка пагинации и повторных попыток при сбоях
Поддерживаемые реестры
Действующие члены:
- Реестр аудиторов и индивидуальных аудиторов (14,691+ записей)
- Реестр аудиторских организаций (256+ записей)
- Реестр квалификационных аттестатов
- Перечень индивидуальных аудиторов
- Реестр учебно-методических центров
- Сведения о подтверждении ОППК
- Сведения о прохождении ПК руководителем аудита ОЗО ФР
Исключенные члены: 8. Аудиторы, прекратившие членство 9. Аудиторские организации, прекратившие членство 10. Аннулированные квалификационные аттестаты 11. УМЦ, исключенные из реестра
Дисциплинарные меры: 12. Меры воздействия к аудиторам 13. Меры воздействия к организациям
Сети: 14. Российские и международные сети аудиторских организаций
Установка
# Клонирование репозитория
git clone <repository-url>
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
Languages
Python
98%
Shell
2%