12 KiB
Аналитическая записка по внешним обращениям парсеров
Дата подготовки: 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.