mirror of
https://github.com/ada-dmitry/osint_parser_ada.git
synced 2026-09-24 01:10:20 +00:00
- 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.
5.6 KiB
5.6 KiB
Парсер реестров СРО ААС
Автоматизированный инструмент для сбора данных из реестров Саморегулируемой организации аудиторов Ассоциация «Содружество» (СРО ААС).
Возможности
- Парсинг всех 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