fix(parsers): make source jobs resumable
All checks were successful
CI/CD Pipeline / Quality Gate (push) Successful in 1m11s
CI/CD Pipeline / Build and Push Images (push) Successful in 19s
CI/CD Pipeline / Internal Notify (push) Successful in 0s
CI/CD Pipeline / Deploy Dev via Compose (push) Successful in 24s

This commit is contained in:
2026-08-14 17:02:56 +02:00
parent a0eb0a5303
commit 31eaa7e907
14 changed files with 884 additions and 476 deletions

View File

@@ -24,9 +24,7 @@
| КАД Арбитр через внешний сервис данных | Официальный источник в каталоге: `https://kad.arbitr.ru/`; фактический lookup выполняется через служебный API внешнего сервиса | JSON-ответы по арбитражным делам для активных организаций из внутренних реестров. В запрос передаются ИНН/ОГРН. В payload сохраняются номер дела, суд, тип, статус, даты, суммы, стороны и ссылка на карточку. |
| Федресурс/ЕФРСБ | `https://bankrot.fedresurs.ru/`; fallback выполняется через служебный API внешнего сервиса | Официальный источник обрабатывается как HTML/структурированная выгрузка. При недоступности портала по ИНН/ОГРН организации запрашиваются сведения о банкротных сообщениях из JSON. |
| ФСТЭК | `https://reestr.fstec.ru/reg3` и найденные на странице ссылки вида `module=rfiles` или `/uploads/reg...` | HTML-страница реестра, затем CSV/файловая выгрузка, если ссылка найдена. Для этого источника в коде отключена SSL-верификация. |
| Вакансии: Работа России | Клиент использует `http://opendata.trudvsem.ru/api/v1/vacancies`, `http://opendata.trudvsem.ru/api/v1/vacancies/company/inn/{inn}`; в каталоге источников указан `https://opendata.trudvsem.ru/api/v1/vacancies` | JSON-список вакансий, включая работодателя, ИНН/ОГРН при наличии, название вакансии, дату, зарплату, статус, ссылку. |
| Вакансии: HeadHunter | `https://api.hh.ru/vacancies` | JSON-список вакансий. Поиск выполняется по региону и/или тексту, для организаций без поиска по ИНН используется нормализованное название. |
| Вакансии: SuperJob | `https://api.superjob.ru/2.0/vacancies/` | JSON-список вакансий. Используется только если задан `SUPERJOB_APP_ID`; ключ передается в заголовке `X-Api-App-Id`. |
| Вакансии: Работа России | `https://opendata.trudvsem.ru/api/v1/vacancies`, `https://opendata.trudvsem.ru/api/v1/vacancies/company/inn/{inn}` | JSON-список вакансий, включая работодателя, ИНН/ОГРН при наличии, название вакансии, дату, зарплату, статус, ссылку. Организации обрабатываются короткими пакетами, результат сохраняется после каждой организации. |
| Внешний сервис данных: контракты и проверки по организациям | Служебные API контрактов и проверок | JSON-данные по контрактам и проверкам для активных организаций из внутренних реестров. В запрос передаются ИНН/ОГРН, API-ключ передается параметром `key`. |
| Proxy-Tools | `https://proxy-tools.com/api/v1/proxies` | Служебная загрузка списка RU-прокси для парсеров. Используется только при заданном `PROXY_TOOLS_API_KEY`; запрос идет с Bearer-токеном. |
@@ -51,7 +49,7 @@
- коды регионов;
- ИНН/ОГРН организаций из внутренних активных реестров;
- поисковая строка по названию организации для вакансий;
- служебные ключи API из окружения для ЕИС, внешнего сервиса данных, SuperJob и Proxy-Tools.
- служебные ключи API из окружения для ЕИС, внешнего сервиса данных и Proxy-Tools.
Ключи в коде не захардкожены, берутся из переменных окружения.
@@ -61,4 +59,5 @@
- Для ФНС текущая реализация backend не скачивает файлы автоматически с сайта ФНС, а обрабатывает уже полученные Excel/ZIP-файлы через папку наблюдения или API-загрузку.
- Для `proverki.gov.ru` возможен запуск headless Chromium через Playwright, потому что часть загрузок доступна через JS-интерфейс портала.
- Для ФСТЭК SSL-верификация отключена настройкой клиента источника.
- Источники вакансий HeadHunter и SuperJob отключены; сбор выполняется только из «Работы России».
- Runtime-прокси из БД используются только при включенном `PARSER_USE_RUNTIME_PROXIES=true`; отдельная задача синхронизации прокси обращается к Proxy-Tools только при наличии `PROXY_TOOLS_API_KEY`.