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

Вестник Банка России (cbr.ru)

ПризнакЗначение
Уровень и охватФедеральное официальное издание Банка России: нормативные и распорядительные документы, разъяснения, оперативная информация и отдельные рыночные таблицы
Тип доступаСмешанный: HTML-каталог по годам и HTML-индекс актов, PDF-файлы выпусков, поисковая форма
Основные форматыHTML, PDF; в проверенных выпусках нет отдельной CSV/XLSX-выгрузки состава номера
ОператорБанк России
Режим доступаОткрытый доступ к публичным страницам и файлам; поисковый интерфейс может отклонять автоматизированные запросы

Коротко: «Вестник Банка России» — прежде всего корпус HTML/PDF-документов, а не табличный датасет. Для разработчика полезна схема год → выпуск → документ/раздел PDF; для аналитика госфинансов — нормативный и макрофинансовый контекст, но не строки исполнения бюджета по КБК.

Качество и верификация​

ИзмерениеЗначение для этой карточки
Дата проверки (last_verified)18.07.2026: загружены годовой каталог 2026, HTML-индекс актов 2026 и PDF выпусков № 22 (2611) и № 21 (2610)
Полнота (data_completeness)Частичная как машиночитаемый источник: каталог покрывает номера и индекс актов, но полный состав выпуска остаётся внутри PDF; по одному HTML-индексу нельзя восстановить все информационные сообщения и таблицы
Машиночитаемость (machine_readability)HTML с устойчивыми CSS-классами для календаря и таблицей актов; PDF двух проверенных номеров имеет текстовый слой, но таблицы требуют координатного разбора и визуальной проверки
Юридическая значимость (legal_significance)Официальное издание Банка России; для правового применения следует сверять статус конкретного акта и его официальное опубликование
Задержка обновления (update_lag)По событию: страница 2026 на дату проверки показывала последний номер от 09.07.2026 и обновление страницы 09.07.2026; объявленного фиксированного графика не найдено
Глубина архива (archive_depth)В переключателе годовых страниц видны 1998–2026; URL за 1998 и 1999 также вернули HTTP 200. Поисковая форма заявляет поиск документов, опубликованных с 1999 года
Лицензия (license_or_terms)В проверенных страницах и заголовках файлов отдельные условия повторного использования не указаны явно

Описание​

Карточка описывает раздел «Вестник Банка России». Его годовой HTML-каталог группирует номера по месяцам; номер содержит дату и ссылку. В актуальном каталоге эта ссылка ведёт сразу к единому PDF выпуска, а не к отдельной HTML-странице номера.

Отдельная страница перечня актов за 2026 год — это HTML-индекс документов, а не страница выпуска: в ней пять колонок (номер акта, дата акта, название, номер «Вестника», дата «Вестника»), а ссылка в строке снова указывает на PDF всего номера. На дату проверки в таблице было 34 строки. Это удобнее для каталога нормативных актов, но не заменяет разбор содержания PDF.

В объём карточки не входят закрытые кабинеты участников финансового рынка и надзорные контуры Банка России.

Оператор​

Банк России публикует и обслуживает раздел на cbr.ru.

  • Сайт Банка России — карточка портала-оператора; на нём размещены годовой каталог, индекс актов и поисковая форма «Вестника».

URL и точки доступа​

Тип доступаURLФорматСтабильность и назначение
Годовой каталог, пример2026 годHTMLШаблон пути наблюдался в переключателе архива; содержимое меняется при выходе номера
Шаблон годового каталогаhttps://cbr.ru/about_br/publ/vestnik/year/<YYYY>HTMLНа проверенной странице перечислены годы 1998–2026; адреса 1998 и 1999 вернули HTTP 200
Индекс документов за год, примеракты 2026HTMLПараметр year виден в ссылке каталога; это индекс актов, не список всех разделов PDF
Файл выпуска, пример№ 22 (2611), 09.07.2026PDFURL получен из календаря; сегмент с числовым ID меняется, поэтому формировать URL вручную нельзя
Поиск документовvestnik-searchHTML, GET-формаПубличный интерфейс, но проверенный автоматический GET с запросом вернул HTTP 403; используйте как интерфейс оператора, не как гарантированный API

Не хардкодьте ID из пути Queries/XsltBlock/File/<id>/-1/<issue-id> и имя файла из Content-Disposition: актуальный URL выпуска нужно извлекать из годового каталога или HTML-индекса актов при каждом обходе.

Структура файлов и состав данных​

Проверка выполнена 18.07.2026 командами curl -L и Python. Контрольные суммы относятся к конкретно загруженному телу и не являются ожидаемым значением для следующего запуска.

АртефактИдентификаторы реально полученного ответа
HTML-каталог 2026URL: https://cbr.ru/about_br/publ/vestnik/year/2026; HTTP 200; сервер не вернул HTTP Last-Modified, но в HTML есть zoom:last-modified: Thu, 09 Jul 2026 08:00:00 GMT; Content-Length: 11538 при Content-Encoding: gzip, сохранённое распакованное тело — 46 946 байт; SHA-256 43ec474d6ab6aa696ae5a4e1f5c2d749ff445a22f030316d8d9444fc48bf8622
PDF № 22 (2611) от 09.07.2026URL: https://cbr.ru/Queries/XsltBlock/File/185926/-1/2611; Last-Modified: Thu, 09 Jul 2026 08:00:00 GMT; Content-Disposition: inline; filename="ves260709_022(2611).pdf"; 471 688 байт; SHA-256 1ecefd4fa0d3ec02cf6687140160132f2c5cf74f8cb500625362208d0ccd54f4
PDF № 21 (2610) от 01.07.2026URL: https://cbr.ru/Queries/XsltBlock/File/185926/-1/2610; Last-Modified: Wed, 01 Jul 2026 08:00:00 GMT; Content-Disposition: inline; filename="ves260701_021(2610).pdf"; 396 659 байт; SHA-256 6ce623c7b613555e774a4e08229fd65950276f7ed96e5a4b8d17a3ed824a3610

A. Каталог выпусков (HTML)​

Годовая страница содержит:

Реальный HTML-узел / полеСостав и гранулярность
.versions_itemПереключатель годов: ссылка /about_br/publ/vestnik/year/<YYYY>/ и текст года. На 18.07.2026 в нём были 1998–2026
.vestnik-calendar_monthОдин календарный месяц, название — .vestnik-calendar_month_title
.vestnik-calendar_itemОдин выпуск: атрибут title содержит пару «номер (сквозной номер)», .vestnik-calendar_item_title — отображаемый номер, .vestnik-calendar_item_date — дата ДД.ММ.ГГГГ, href — файл выпуска
.vestnik-calendar_item_format.icon-pdfИндикатор формата; у всех 22 элементов каталога 2026 это PDF
table.data.levels на vestnik-akts/?year=2026Индекс актов: номер и дата акта, полное название, номер и дата выпуска; в ссылке номера — PDF выпуска

Каталог 2026 вернул 22 выпуска: первый в порядке HTML — № 22, 09.07.2026, title="22 (2611)"; последний — № 1, 16.01.2026, title="1 (2590)". В календаре нет URL отдельных документов или приложений: один href соответствует PDF целого номера. Поэтому запись выпуска разумно хранить как year, issue_number, issue_ordinal, issue_date, issue_pdf_url, format, retrieved_at, last_modified, bytes, sha256.

B. Документ выпуска и вложения (PDF)​

В проверенных выпусках отдельной HTML-карточки номера и набора sidecar-вложений не обнаружено: PDF — единственный файл, который возвращает ссылка календаря. Его первая содержательная страница — оглавление; далее документы и разделы следуют внутри файла. В № 22 (2611) — 42 страницы, в № 21 (2610) — 37 страниц; pypdf извлёк около 139 тыс. и 132 тыс. символов соответственно. Точное число зависит от версии библиотеки и способа склейки страниц, но оба файла явно имеют текстовый слой.

ВыпускСодержание, проверенное по оглавлениюТабличные фрагменты
№ 22 (2611), 09.07.2026Информационные сообщения, сообщения о кредитных организациях, ставки денежного рынка, валютный рынок, учётные цены драгметаллов, официальные документы: Положение № 884-П, Указания № 7285-У и № 7352-У, Методические рекомендации № 4-МРСтраница PDF с MIACR содержит таблицы по сроку кредита, датам, среднему значению и изменению; далее есть таблицы курсов валют и цен металлов
№ 21 (2610), 01.07.2026Те же оперативные разделы и официальные документы: Положение № 883-П и Указания № 7273-У, № 7284-У, № 7300-У, № 7315-У, № 7339-У, № 7342-УТаблицы MIACR по двум недельным интервалам, курсы валют и цены металлов; состав зависит от номера

Для каталогизации нормативного документа используйте поля HTML-индекса: act_number, act_date, title, issue_number, issue_date, issue_pdf_url. Тип акта можно извлечь из начала заголовка («Положение», «Указание», «Инструкция», «Телеграмма», «Письмо», «Методические рекомендации»), но это производное поле: в таблице нет отдельной колонки типа. Для сообщений без номера акта и для таблиц внутри PDF ключом остаётся выпуск, раздел, страница и заголовок из оглавления.

Текстовый слой позволяет искать и извлекать текст pypdf/pdfplumber. Таблицы в № 22 визуально имеют объединённые заголовки и несколько табличных блоков на странице; автоматический extract_table() нужно настраивать по координатам, сохранять номер страницы и сверять с рендером PDF. В другом выпуске или старой части архива текстовый слой может отсутствовать либо быть хуже: тогда нужен OCR, а результат нельзя трактовать как первичный набор данных без ручной проверки.

C. Поиск по «Вестнику»​

Форма https://cbr.ru/about_br/publ/vestnik-search/ имеет method="get", скрытое поле UniDbQuery.Posted=True и единственное видимое поле UniDbQuery.stext с подписью «Документ №:». Подсказка страницы разрешает номер (часть номера) или часть названия длиной от 3 до 20 символов; на форме нет фильтров по периоду или типу документа.

Параметры формы — наблюдаемые UI-параметры, а не опубликованный API. Проверка GET с UniDbQuery.Posted=True и UniDbQuery.stext=115-Т 18.07.2026 получила HTTP 403, поэтому пакетный обход через поиск не следует считать воспроизводимым. Для автоматизации надёжнее обходить годовой каталог и HTML-индекс актов; поиск оставлять как интерактивную точку входа и повторно проверять его поведение при необходимости.

Объекты данных и показатели​

  • Выпуск — запись каталога с полями год, номер выпуска, сквозной номер в скобках, дата выпуска, URL PDF и техническими идентификаторами файла. Номер № 22 недостаточен без года; для версии файла сохраняйте также Last-Modified, размер и SHA-256.
  • Документ выпуска — строка HTML-индекса актов: номер и дата акта, заголовок, номер и дата выпуска, URL PDF. Внутри PDF документ может иметь приложения, но в проверенном каталоге они не опубликованы как отдельные машинно-адресуемые файлы.
  • Табличный фрагмент PDF — не строка общего датасета: его минимальная адресация — issue_ordinal + page_number + section + table_title. Например, в № 22 MIACR содержит срок кредита, дату, значение, среднее и изменение; это не универсальная схема всех номеров.
  • Внешние связки допустимы через дату официального опубликования, номер акта и тему регулирования. Прямой join с бюджетными или статистическими наборами по КБК, ОКТМО, ИНН или идентификатору бюджетной операции невозможен: этих полей в «Вестнике» нет.

Пробелы и подводные камни: нет единого API, стабильного реестра deeplink-ов актов и табличной схемы выпуска; числовой ID в PDF URL следует считать переменным. Один акт может дублироваться в «Вестнике» и в другом канале cbr.ru, а имя PDF и блок URL могут меняться. Не выводите юридический статус или редакцию акта только из совпадения заголовка: фиксируйте номер, дату, выпуск и версию скачанного файла.

Периодичность обновления​

«Вестник» пополняется по мере выпуска номера, а не как регулярный API-ряд. В каталоге 2026 к 09.07.2026 было 22 выпуска: в январе — 3, в феврале — 3, в марте — 2, в апреле — 4, в мае — 3, в июне — 5 и в июле — 2. Это наблюдение, а не обещание периодичности: фиксированного календаря публикаций на проверенной странице нет.

Для текущего состояния повторно загружайте нужную страницу year/<YYYY>, сравнивайте список выпусков и для каждого нового либо изменившегося PDF сохраняйте заголовки ответа, размер и SHA-256. Для регулярных машиночитаемых временных рядов используйте Статистику Банка России, а не выпуски «Вестника».

Ограничения и особенности​

  • В годовом каталоге показываются номера и PDF, но не состав документа по строкам; HTML-индекс актов охватывает нормативные и распорядительные документы, а не все информационные сообщения и таблицы номера.
  • PDF № 21 и № 22 содержат читаемый текст и визуальные таблицы, однако CSV/XLSX-версии этих таблиц в проверенных ответах не найдены. Для воспроизводимого извлечения храните исходный PDF и страницу-источник.
  • Автоматический запрос поисковой формы с реально присутствующими GET-параметрами вернул 403; это исключает предположение о свободном поисковом endpoint’е.
  • Архивная навигация видна с 1998 года, тогда как подпись поиска говорит «с 1999 года». Сохраняйте этот разрыв как свойство интерфейсов, а не заменяйте один источник другим без проверки конкретного года.
  • Для нормативной интерпретации, а не только для извлечения текста, сверяйте Банк России и актуальный статус конкретного акта в официальном канале регулятора.

Примеры доступа​

1. Скачать годовой каталог вместе с HTTP-заголовками. Команда проверена 18.07.2026: вернула HTTP 200; curl --compressed сохранил распакованный HTML размером 46 946 байт. Сервер передал Content-Length сжатого тела, но не HTTP Last-Modified.

curl -fL --compressed \
-D cbr_vestnik_year_2026.headers \
-o cbr_vestnik_year_2026.html \
"https://cbr.ru/about_br/publ/vestnik/year/2026"
shasum -a 256 cbr_vestnik_year_2026.html

2. Разобрать HTML-каталог в список выпусков. Код использует requests и BeautifulSoup с парсером lxml; он выполнен 18.07.2026 и вывел 22 записи. Первая: № 22, 09.07.2026, URL PDF с окончанием /2611; последняя: № 1, 16.01.2026, /2590.

from urllib.parse import urljoin

import requests
from bs4 import BeautifulSoup

year_url = "https://cbr.ru/about_br/publ/vestnik/year/2026"
response = requests.get(year_url, timeout=30)
response.raise_for_status()
soup = BeautifulSoup(response.text, "lxml")

issues = []
for node in soup.select(".vestnik-calendar_month .vestnik-calendar_item"):
issues.append({
"issue_number": node.select_one(".vestnik-calendar_item_title").get_text(" ", strip=True),
"issue_date": node.select_one(".vestnik-calendar_item_date").get_text(" ", strip=True),
"issue_ordinal": node.get("title"), # например, "22 (2611)"
"issue_pdf_url": urljoin(year_url, node["href"]),
"format": "pdf" if "icon-pdf" in " ".join(node.get("class", []))
or node.select_one(".icon-pdf") else "unknown",
})

print(len(issues))
print(issues[0])

3. Получить список документов и их PDF-вложений из HTML-индекса. В актуальной разметке нет HTML-страницы отдельного выпуска: у каждой строки индекса ссылка ведёт к PDF целого номера. Код ниже поэтому извлекает документы из vestnik-akts, классифицирует тип по началу названия и фиксирует единственное доступное вложение — PDF выпуска. Он выполнен 18.07.2026 и получил 34 строки.

from urllib.parse import urljoin

import requests
from bs4 import BeautifulSoup

acts_url = "https://cbr.ru/about_br/publ/vestnik-akts/?year=2026"
response = requests.get(acts_url, timeout=30)
response.raise_for_status()
soup = BeautifulSoup(response.text, "lxml")

prefixes = (
"Инструкция Банка России", "Положение Банка России", "Указание Банка России",
"Телеграмма", "Письмо Банка России", "Информационное письмо",
"Методические рекомендации", "Приказ Банка России",
)

documents = []
for row in soup.select("table.data.levels tbody tr"):
cells = [cell.get_text(" ", strip=True) for cell in row.select("td")]
issue_link = row.select_one("td:nth-of-type(4) a[href]")
if len(cells) != 5 or issue_link is None:
continue
title = cells[2]
documents.append({
"act_number": cells[0],
"act_date": cells[1],
"title": title,
"act_type": next((p for p in prefixes if title.startswith(p)), "other"),
"issue_number": cells[3],
"issue_date": cells[4],
"attachment_url": urljoin(acts_url, issue_link["href"]),
"attachment_format": "pdf",
})

print(len(documents))
print(documents[0])

4. Скачать PDF, сохранить проверяемые метаданные и посчитать SHA-256. Этот код выполнен для № 22 (2611) 18.07.2026: status=200, content_type=application/pdf, last_modified=Thu, 09 Jul 2026 08:00:00 GMT, bytes=471688, SHA-256 1ecefd4fa0d3ec02cf6687140160132f2c5cf74f8cb500625362208d0ccd54f4.

import hashlib
from pathlib import Path

import requests

pdf_url = "https://cbr.ru/Queries/XsltBlock/File/185926/-1/2611"
response = requests.get(pdf_url, timeout=60)
response.raise_for_status()

body = response.content
Path("vestnik-2611.pdf").write_bytes(body)
print({
"status": response.status_code,
"content_type": response.headers.get("Content-Type"),
"last_modified": response.headers.get("Last-Modified"),
"content_disposition": response.headers.get("Content-Disposition"),
"bytes": len(body),
"sha256": hashlib.sha256(body).hexdigest(),
})

5. Извлечь текст из PDF и не потерять контекст таблиц. Пример проверен с pypdf на № 22: 42 страницы и около 139 тыс. извлечённых символов. Он годится для поиска и проверки оглавления; для MIACR, курсов и других печатных таблиц сохраняйте page_number, применяйте координатный разбор pdfplumber и сверяйте результат с рендером. Если extract_text() на архивном файле пуст, нужен OCR.

from io import BytesIO

import requests
from pypdf import PdfReader

pdf_url = "https://cbr.ru/Queries/XsltBlock/File/185926/-1/2611"
response = requests.get(pdf_url, timeout=60)
response.raise_for_status()

reader = PdfReader(BytesIO(response.content))
pages = [page.extract_text() or "" for page in reader.pages]
print("pages:", len(pages))
print("characters:", sum(map(len, pages)))
contents_page = next(text for text in pages if "Содержание" in text)
print(contents_page[:800])

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

Не путать с​

Сводка для машинной обработки​

primary_url: "https://cbr.ru/about_br/publ/vestnik/year/2026"
catalog_pattern: "https://cbr.ru/about_br/publ/vestnik/year/<YYYY>"
document_index_pattern: "https://cbr.ru/about_br/publ/vestnik-akts/?year=<YYYY>"
search_url: "https://cbr.ru/about_br/publ/vestnik-search/"
formats: ["html", "pdf"]
update_cadence: "по мере выпуска номера; фиксированный календарь на проверенной странице не опубликован"
url_stability: "годовой шаблон наблюдался для 1998–2026; PDF URL содержит переменный числовой block id и должен извлекаться из HTML"
checked_at: "2026-07-18"
verified_artifacts:
- "year/2026: HTTP Last-Modified absent; decoded bytes=46946; sha256=43ec474d6ab6aa696ae5a4e1f5c2d749ff445a22f030316d8d9444fc48bf8622"
- "issue 2611: Last-Modified=Thu, 09 Jul 2026 08:00:00 GMT; bytes=471688; sha256=1ecefd4fa0d3ec02cf6687140160132f2c5cf74f8cb500625362208d0ccd54f4"
- "issue 2610: Last-Modified=Wed, 01 Jul 2026 08:00:00 GMT; bytes=396659; sha256=6ce623c7b613555e774a4e08229fd65950276f7ed96e5a4b8d17a3ed824a3610"
join_keys:
- "catalog: year + issue_number + issue_ordinal + issue_date"
- "document index: act_number + act_date; link to issue_number + issue_date"
- "file version: issue_pdf_url + last_modified + bytes + sha256"
- "PDF fragment: issue_ordinal + page_number + section + table_title"
parse_notes:
- "Годовой календарь: .vestnik-calendar_month и .vestnik-calendar_item; у 2026 все 22 ссылок обозначены icon-pdf."
- "В актуальном каталоге выпуск не имеет отдельной HTML-страницы: href ведёт прямо к PDF."
- "Индекс vestnik-akts имеет пять колонок; он охватывает акты, но не все информационные сообщения и таблицы PDF."
- "Тип акта выводится из title, потому что отдельной колонки нет."
- "Поисковая GET-форма содержит UniDbQuery.Posted и UniDbQuery.stext; тестовый автоматический запрос 18.07.2026 получил HTTP 403."
- "В «Вестнике» нет КБК, ОКТМО, ИНН и API для прямого join с бюджетными наборами."

Частые вопросы​

В: Можно ли считать «Вестник» таблицей нормативных актов?

О: Частично. HTML-индекс за год даёт удобные поля номера, даты и названия акта с привязкой к номеру «Вестника», но полный выпуск и часть материалов находятся внутри PDF. Информационные сообщения и таблицы из PDF в этой HTML-таблице не представлены как отдельные строки.

В: Как безопасно автоматически заметить новый или изменённый выпуск?

О: Повторно распарсите нужный year/<YYYY>, сравните набор year + issue_ordinal и URL. Для нового файла сохраните тело PDF, Last-Modified, размер и SHA-256; изменение хеша при том же URL означает, что PDF следует переобработать целиком.

В: Почему нельзя соединить выпуск с исполнением бюджета по КБК или ОКТМО?

О: «Вестник» каталогизирует номера и тексты актов, а не операции исполнения бюджета. В нём нет КБК, ОКТМО, ИНН и идентификатора бюджетной операции; допустимы лишь тематические или временные сопоставления, явно заданные аналитиком.