Перейти к основному содержимому

Открытые данные bus.gov.ru

Зачем и для кого

Инструкция для аналитиков и разработчиков, которым нужны официальные выгрузки по учреждениям: планы ФХД и отчёты об исполнении, государственное (муниципальное) задание, бухгалтерская отчётность и смежные наборы с портала bus.gov.ru. Отдельного стабильного публичного OpenAPI «на всё» нет: основной вход — витрина паспортов https://bus.gov.ru/opendata и файлы, на которые ссылается паспорт каждого набора.

Входные данные

  • Витрина открытых данныхhttps://bus.gov.ru/opendata: каталог наборов, паспорт, ссылки на файлы и условия использования по конкретному датасету.
  • Идентификатор набора и финансовый год — из названия/описания паспорта; для воспроизводимости зафиксируйте дату скачивания и URL паспорта (состав наборов и полей меняется).
  • Прямая ссылка на файл — из паспорта или через «Скачать» в интерфейсе (часто URL вида /public-rest/api/opendata/...); её удобно скопировать из браузера перед запуском скрипта.
  • Контекст для сверки — при необходимости веб-карточка учреждения на https://bus.gov.ru/ и смежные источники (см. карточку источника).

Инструменты

  • Браузер (Chrome/Firefox) — выбор набора, чтение паспорта, копирование прямой ссылки на файл; при автоматизации — вкладка Сеть (Network) для просмотра запросов SPA к public-rest (состав запросов не гарантирован между версиями портала).
  • Python 3 с пакетом requests и модулем csv (или pandas после определения разделителя и кодировки по первым строкам файла).

Шаги

  1. Откройте https://bus.gov.ru/opendata и найдите нужный набор по смыслу (отчётность, госзадание, план ФХД и т.д.).
  2. Откройте паспорт набора: зафиксируйте дату актуализации, формат (CSV/XML/JSON) и лицензию/условия в тексте паспорта.
  3. Получите прямую ссылку на файл данных — через кнопку скачивания («Копировать адрес ссылки») или поле в паспорте.
  4. Скачайте файл вручную или скриптом (см. пример ниже); для больших выгрузок увеличьте таймаут и по возможности пишите потоком на диск.
  5. Определите кодировку и разделитель по паспорту и по первым строкам файла (на старых наборах встречаются Windows-1251 и ;).

Воспроизводимый пример

Скопируйте полный URL файла из паспорта набора или из вкладки «Сеть» после нажатия «Скачать» в браузере. Сохраните код в файл (например bus_sample.py) и выполните команды ниже. Без переменной окружения скрипт завершится с подсказкой; с URL он печатает первые пять строк CSV. Разделитель ; типичен для выгрузок bus; если строки «пустые», откройте файл в редакторе и попробуйте ,.

import csv
import io
import os
import sys

import requests

FILE_URL = os.environ.get("BUS_OPEN_DATA_FILE_URL")
if not FILE_URL:
sys.exit(
"Задайте BUS_OPEN_DATA_FILE_URL — полный URL файла из паспорта на "
"https://bus.gov.ru/opendata"
)

HEADERS = {
"User-Agent": "Mozilla/5.0 (compatible; bus-opendata-pipeline/1.0; +https://example.org/contact)",
}

resp = requests.get(FILE_URL, headers=HEADERS, timeout=300)
resp.raise_for_status()

# Часто UTF-8; при кракозябрах попробуйте decode("cp1251") вместо apparent_encoding
text = resp.content.decode(resp.apparent_encoding or "utf-8", errors="replace")

reader = csv.reader(io.StringIO(text), delimiter=";")
for _, row in zip(range(5), reader):
print(row)
export BUS_OPEN_DATA_FILE_URL='https://...' # вставьте URL из паспорта
python3 bus_sample.py

Проверка результата

  • Сверьте объём строк и ключевые поля (ИНН, ОГРН, код учреждения, период) с веб-карточкой того же учреждения на bus.gov.ru.
  • Сопоставьте итоговые суммы с планом ФХД/отчётом в веб-интерфейсе; при расхождении ориентируйтесь на дату обновления выгрузки в паспорте.
  • Помните, что bus — уровень учреждения; бюджетное исполнение по КБК и выплаты не обязаны совпадать с выгрузкой (см. казначейские отчёты и наборы Электронного бюджета).

Ограничения и типовые ошибки

  • Вызовы /public-rest/api/... без контекста браузера часто дают ошибку сервера или HTML вместо файла: сначала получайте URL из живой витрины, не копируйте устаревшие шаблоны из старых заметок.
  • Нет полного дубля HTML в opendata: в выгрузке может не быть части полей, видимых только в веб-карточке.
  • Объёмы большие — не держите весь файл в памяти без необходимости; проверяйте лимиты и дружелюбный User-Agent.
  • Не путайте показатели учреждения с консолидированным бюджетом budget.gov.ru; стыковка — по ИНН, году и методике показателя.

Связанные страницы