feat(parsers): add proverki.gov.ru parser with sync_inspections task
Some checks failed
CI/CD Pipeline / Build Docker Images (push) Blocked by required conditions
CI/CD Pipeline / Push to Gitea Registry (push) Blocked by required conditions
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m55s
CI/CD Pipeline / Run Tests (push) Failing after 3h11m38s
Some checks failed
CI/CD Pipeline / Build Docker Images (push) Blocked by required conditions
CI/CD Pipeline / Push to Gitea Registry (push) Blocked by required conditions
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m55s
CI/CD Pipeline / Run Tests (push) Failing after 3h11m38s
- Add InspectionRecord model with is_federal_law_248, data_year, data_month fields - Add ProverkiClient with Playwright support for JS-rendered portal - Add streaming XML parser for large files (>50MB) - Add sync_inspections task with incremental loading logic - Starts from 01.01.2025 if DB is empty - Loads both FZ-294 and FZ-248 inspections - Stops after 2 consecutive empty months - Add InspectionService methods: get_last_loaded_period, has_data_for_period - Add Minpromtorg parsers (certificates, manufacturers) - Add Django Admin for parser models - Update README with parsers documentation and changelog
This commit is contained in:
81
README.md
81
README.md
@@ -10,10 +10,53 @@
|
||||
- **PostgreSQL**: 15.10
|
||||
- **Redis**: 7.x
|
||||
- **Celery**: 5.3.6
|
||||
- **Scrapy**: 2.11.2
|
||||
- **Playwright**: 1.52+ (browser automation)
|
||||
- **Gunicorn**: 21.2.0
|
||||
- **Apache**: 2.4.57
|
||||
|
||||
## Парсеры данных
|
||||
|
||||
Проект включает парсеры для загрузки данных из государственных источников:
|
||||
|
||||
### Минпромторг (minpromtorg.gov.ru)
|
||||
- **Сертификаты промышленного производства** - `parse_industrial_production`
|
||||
- **Реестр производителей** - `parse_manufactures`
|
||||
|
||||
### Единый реестр проверок (proverki.gov.ru)
|
||||
- **Проверки по ФЗ-294** - традиционные проверки
|
||||
- **Проверки по ФЗ-248** - новые проверки с 2021 года
|
||||
- **Автоматическая синхронизация** - `sync_inspections`
|
||||
|
||||
### Запуск парсеров
|
||||
|
||||
```python
|
||||
# Через Celery
|
||||
from apps.parsers.tasks import (
|
||||
parse_industrial_production,
|
||||
parse_manufactures,
|
||||
parse_inspections,
|
||||
sync_inspections,
|
||||
)
|
||||
|
||||
# Парсинг сертификатов
|
||||
parse_industrial_production.delay()
|
||||
|
||||
# Парсинг производителей
|
||||
parse_manufactures.delay()
|
||||
|
||||
# Парсинг проверок за конкретный месяц
|
||||
parse_inspections.delay(year=2025, month=10, is_federal_law_248=False)
|
||||
|
||||
# Автоматическая синхронизация (с 01.01.2025 до текущего месяца)
|
||||
sync_inspections.delay()
|
||||
```
|
||||
|
||||
### Особенности парсера proverki.gov.ru
|
||||
- Использует **Playwright** для JS-рендеринга
|
||||
- Поддержка **потокового парсинга** для больших файлов (>50 МБ)
|
||||
- Автоматическое определение последнего загруженного периода
|
||||
- Раздельная загрузка ФЗ-294 и ФЗ-248
|
||||
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
@@ -313,4 +356,38 @@ make clean # Очистка временных файлов
|
||||
|
||||
## Лицензия
|
||||
|
||||
MIT License
|
||||
MIT License
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
### 2026-01-21
|
||||
#### Добавлено
|
||||
- **Задача `sync_inspections`** - автоматическая синхронизация проверок с proverki.gov.ru
|
||||
- Инкрементальная загрузка с последнего сохранённого периода
|
||||
- Начало с 01.01.2025 если БД пуста
|
||||
- Раздельная загрузка ФЗ-294 и ФЗ-248
|
||||
- Автоматическая остановка при отсутствии данных (2 пустых месяца)
|
||||
- **Поля в модели InspectionRecord**:
|
||||
- `is_federal_law_248` - признак проверки по ФЗ-248
|
||||
- `data_year` - год загруженных данных
|
||||
- `data_month` - месяц загруженных данных
|
||||
- **Потоковый парсинг XML** для файлов >50 МБ (iterparse)
|
||||
- **Методы в InspectionService**:
|
||||
- `get_last_loaded_period()` - получение последнего загруженного периода
|
||||
- `has_data_for_period()` - проверка наличия данных за период
|
||||
|
||||
### 2026-01-20
|
||||
#### Добавлено
|
||||
- **Парсер proverki.gov.ru** с поддержкой Playwright
|
||||
- Навигация по порталу (клик на вкладку "Скачать")
|
||||
- Парсинг XML с namespaces
|
||||
- Извлечение данных из атрибутов и вложенных элементов
|
||||
|
||||
### 2026-01-19
|
||||
#### Добавлено
|
||||
- **Парсеры Минпромторга** (сертификаты, производители)
|
||||
- **Модуль apps.parsers** с клиентами, сервисами и задачами Celery
|
||||
- **Django Admin** для управления записями парсеров
|
||||
- Дедупликация по unique constraints
|
||||
Reference in New Issue
Block a user