Files
mostovik-backend/docs/parser-external-access-note-ru.md

12 KiB
Raw Blame History

Аналитическая записка по внешним обращениям парсеров

Дата подготовки: 2026-05-18

Краткое описание

В backend Mostovik подсистема парсеров реализована как набор Celery-задач и HTTP-клиентов. Парсеры обращаются к открытым государственным источникам, публичным API и, при наличии ключей в переменных окружения, к платным/служебным API. Полученные данные нормализуются и сохраняются в PostgreSQL через сервисный слой.

Основные точки входа находятся в src/apps/parsers/tasks.py. Внешние HTTP-запросы выполняются через клиенты в src/apps/parsers/clients/. Общий HTTP-клиент использует GET/POST, таймауты, стандартный User-Agent и, если включено PARSER_USE_RUNTIME_PROXIES, может использовать активные RU-прокси из БД.

Куда обращается и что скачивает

Источник Адреса обращения Что скачивается / получается
Минпромторг: сертификаты промышленного производства https://minpromtorg.gov.ru/api/kss-document-preview JSON-список документов, затем последний Excel-файл из поля files[].url. Из Excel берутся номер заключения, даты, ссылка на документ, наименование организации, ИНН, ОГРН.
Минпромторг: реестр производителей https://minpromtorg.gov.ru/api/kss-document-preview JSON-список документов, затем последний Excel-файл data_orgs_YYYYMMDD.... Из Excel берутся наименование производителя, ИНН, ОГРН, адрес.
Минпромторг: промышленная продукция https://minpromtorg.gov.ru/api/kss-document-preview JSON-список документов, затем Excel-файл реестра промышленной продукции. Из Excel берутся организация, ИНН, ОГРН, регистрационный номер, наименование продукции, модель, ОКПД2, ТН ВЭД, нормативный документ.
ГИСП: промышленная продукция https://gisp.gov.ru/pp719v2/pub/prod/, технический API https://gisp.gov.ru/pp719v2/pub/prod/b/ В каталоге источников этот адрес указан как upstream для продукции. Универсальный файловый клиент умеет получить первую страницу JSON через POST на /pp719v2/pub/prod/b/; основная Celery-задача parse_industrial_products сейчас использует Excel discovery Минпромторга.
Генпрокуратура: единый реестр проверок `https://proverki.gov.ru/portal/public-open-data/check/{year}/{month}?isFederalLaw248=true false, https://proverki.gov.ru/portal/public-open-data/check/{year}/plans?isFederalLaw248=true
ЕИС закупки: SOAP-интеграция https://int44.zakupki.gov.ru/eis-integration/services/getDocsIP SOAP-запрос возвращает archiveUrl; затем скачивается ZIP/XML-архив закупок/контрактов. Для доступа используется ZAKUPKI_TOKEN из окружения.
ЕИС закупки: HTTP fallback https://zakupki.gov.ru/opendata/download/notifications/{region}/{year}/... ZIP-архивы с XML-файлами закупок, если SOAP-токен не используется или передана прямая ссылка.
ЕИС/FAS generic-источники https://zakupki.gov.ru/epz/order/extendedsearch/results.html, https://zakupki.gov.ru/epz/orderclause/search/results.html, https://zakupki.gov.ru/epz/contract/search/results.html, https://zakupki.gov.ru/epz/dishonestsupplier/search/results.html, https://fas.gov.ru/pages/activity/reestr-uridicheskih-lic HTML-страницы официальных реестров. Парсер извлекает карточки/таблицы: закупки 44-ФЗ, закупки 223-ФЗ, контракты, недобросовестные поставщики, сведения ФАС по ГОЗ.
ФНС: бухгалтерская отчетность Автоматического HTTP-скачивания с ФНС в текущем коде не найдено. В каталоге источников указан справочный URL https://bo.nalog.gov.ru/advanced-search/organizations/search?... Обрабатываются локально загруженные или положенные в папку input/fns файлы fin_{id}_{ogrn}.xlsx, а также ZIP-архивы с такими файлами. Из Excel берутся строки форм N 1, 2, 3, 4, 6 бухгалтерской отчетности.
КАД Арбитр через Checko Официальный источник в каталоге: https://kad.arbitr.ru/; фактический lookup в коде: https://api.checko.ru/v2/legal-cases JSON-ответы по арбитражным делам для активных организаций из внутренних реестров. В запрос передаются ИНН/ОГРН. В payload сохраняются номер дела, суд, тип, статус, даты, суммы, стороны и ссылка на карточку.
Федресурс/ЕФРСБ https://bankrot.fedresurs.ru/; fallback: https://api.checko.ru/v2/company Официальный источник обрабатывается как HTML/структурированная выгрузка. При недоступности портала используется Checko: по ИНН/ОГРН организации берутся сведения о банкротных сообщениях из 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.
Checko: контракты и проверки по организациям https://api.checko.ru/v2/contracts, https://api.checko.ru/v2/inspections JSON-данные по контрактам и проверкам для активных организаций из внутренних реестров. В запрос передаются ИНН/ОГРН, API-ключ передается параметром key.
Proxy-Tools https://proxy-tools.com/api/v1/proxies Служебная загрузка списка RU-прокси для парсеров. Используется только при заданном PROXY_TOOLS_API_KEY; запрос идет с Bearer-токеном.

Форматы загружаемых данных

Парсеры работают со следующими форматами:

  • JSON-ответы публичных/платных API.
  • Excel-файлы .xlsx/.xlsm с реестрами Минпромторга и бухгалтерской отчетностью ФНС.
  • ZIP-архивы с XML/CSV/JSON/HTML/XLSX-файлами.
  • XML-файлы выгрузок проверок и закупок.
  • HTML-страницы официальных реестров с таблицами или карточками.
  • CSV-файлы, в частности для ФСТЭК.

Скачанные файлы не исполняются как код: они читаются как данные, парсятся и сохраняются в БД.

Передаваемые наружу параметры

Во внешние запросы могут уходить:

  • периоды загрузки: год, месяц, дата;
  • коды регионов;
  • ИНН/ОГРН организаций из внутренних активных реестров;
  • поисковая строка по названию организации для вакансий;
  • служебные ключи API из окружения: ZAKUPKI_TOKEN, CHECKO_API_KEY, SUPERJOB_APP_ID, PROXY_TOOLS_API_KEY.

Ключи в коде не захардкожены, берутся из переменных окружения.

Важные оговорки

  • Для ряда задач предусмотрен параметр file_url. Если оператор передает его вручную, парсер скачивает файл по переданной ссылке, а не только по дефолтному адресу источника.
  • Для ФНС текущая реализация backend не скачивает файлы автоматически с сайта ФНС, а обрабатывает уже полученные Excel/ZIP-файлы через папку наблюдения или API-загрузку.
  • Для proverki.gov.ru возможен запуск headless Chromium через Playwright, потому что часть загрузок доступна через JS-интерфейс портала.
  • Для ФСТЭК SSL-верификация отключена настройкой клиента источника.
  • Runtime-прокси из БД используются только при включенном PARSER_USE_RUNTIME_PROXIES=true; отдельная задача синхронизации прокси обращается к Proxy-Tools только при наличии PROXY_TOOLS_API_KEY.