Files
osint_parser_ada/README.md
T
ada 12d5c6eaff feat: Add data models for disciplinary actions, organizations, and training centers
- 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.
2025-10-25 20:31:45 +03:00

5.6 KiB

Парсер реестров СРО ААС

Автоматизированный инструмент для сбора данных из реестров Саморегулируемой организации аудиторов Ассоциация «Содружество» (СРО ААС).

Возможности

  • Парсинг всех 14 официальных реестров СРО ААС
  • Два режима работы: быстрое сканирование (первая страница) и полное сканирование (все страницы)
  • Экспорт данных в формат Excel (.xlsx) с форматированием
  • Система логирования и обработки ошибок
  • Поддержка пагинации и повторных попыток при сбоях

Поддерживаемые реестры

Действующие члены:

  1. Реестр аудиторов и индивидуальных аудиторов (14,691+ записей)
  2. Реестр аудиторских организаций (256+ записей)
  3. Реестр квалификационных аттестатов
  4. Перечень индивидуальных аудиторов
  5. Реестр учебно-методических центров
  6. Сведения о подтверждении ОППК
  7. Сведения о прохождении ПК руководителем аудита ОЗО ФР

Исключенные члены: 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