Как собрать базу компаний по ОКВЭД из госреестра
Задача звучит просто: «дай список всех компаний с ОКВЭД 86.21 по Московской области». На практике госреестр отдаёт не то, что нужно отделу продаж, и половина работы начинается уже после выгрузки. Разбираем по шагам: какие источники ФНС бесплатные, что в них есть, а чего нет, и где список превращается в мусор.
Какие источники ФНС отдают данные по ОКВЭД
ОКВЭД — код по классификатору ОК 029-2014, который компания указывает при регистрации и меняет заявлением. Сведения ЕГРЮЛ и ЕГРИП открыты, но выдаются в разных местах и в разном виде.
- egrul.nalog.ru — карточка одного юрлица или ИП по ИНН, ОГРН или названию. Поиска по коду ОКВЭД здесь нет: это точечная проверка, а не выгрузка.
- «Прозрачный бизнес» (pb.nalog.ru) — расширенный поиск с фильтрами по региону и виду деятельности. Подходит, чтобы оценить объём выборки и глазами проверить гипотезу, но выдача постранична и на массовую выгрузку не рассчитана.
- Единый реестр субъектов МСП (rmsp.nalog.ru) — самый удобный бесплатный массив. Публикуется архивами в машиночитаемом виде и обновляется ежемесячно. В записи есть ИНН, наименование, регион, категория (микро/малое/среднее), основной и дополнительные коды ОКВЭД. Это и есть рабочая основа для фильтра по коду.
- ГИР БО (bo.nalog.ru) — бухгалтерская отчётность. Нужен, когда база фильтруется по выручке, а не только по коду.
- Полный массив ЕГРЮЛ/ЕГРИП в XML — ФНС отдаёт его по платной годовой подписке. Тариф и порядок подключения смотрите на сайте ФНС: цифры меняются, называть их по памяти не будем.
Порядок сбора: от кода до таблицы
Рабочая последовательность, если делать руками и бесплатно:
- Уточнить коды. Один код почти никогда не покрывает нишу: стоматология — это и 86.23, и общий 86.2, и смежные. Соберите список кодов заранее, иначе выборку придётся делать заново.
- Скачать архив реестра МСП и распарсить его, оставив записи с нужными кодами и регионом. На выходе — ИНН, название, регион, категория.
- Добрать контакты. В ЕГРЮЛ нет ни телефона, ни сайта, ни почты. Их берут из внешних источников: Яндекс.Карты, 2ГИС, сайты компаний, соцсети. Связка идёт по ИНН и названию, и это самая трудоёмкая часть.
- Отсеять мёртвых. Признаки: запись о недостоверности сведений в ЕГРЮЛ, отсутствие отчётности в ГИР БО, нулевая численность, статус ликвидации.
- Сложить в одну таблицу с датой сбора у каждой строки — через три месяца вы не вспомните, что откуда.
Где выборка ломается
Четыре проблемы, о которых стоит знать до того, как база уйдёт в продажи.
ОКВЭД заявительный. Никто не проверяет, занимается ли компания тем, что заявила. Фирмы указывают десяток дополнительных кодов «на будущее» и не убирают их. Обратное тоже верно: реально работающий бизнес может сидеть под общим кодом. Список по коду — это гипотеза, а не факт; часть строк придётся проверять по сайту и картам.
Реестр — не список работающих компаний. Значительная доля записей приходится на юрлица без выручки, сотрудников и деятельности. Без фильтра по отчётности и численности база раздувается вхолостую.
Антибот. Сервисы ФНС и особенно карты не любят автоматических запросов: капча, ограничение частоты, блокировка по адресу. Скрипт на голых HTTP-запросах с зарубежного сервера упирается в это на первой сотне строк.
Данные стареют. Компании закрываются, меняют адрес и коды. Разовая выгрузка живёт несколько месяцев, дальше её нужно обновлять — иначе менеджеры звонят в пустоту.
Что автоматизируется, а что нет
Разовую выгрузку по одному коду и одному региону реально сделать самому: скачать архив МСП, отфильтровать в Python или даже в Excel после конвертации. Автоматизация нужна там, где выборка большая, обновляется регулярно и требует контактов из внешних источников.
Что мы делаем в таких задачах:
- сбор настоящим браузером с российского адреса — так карты и госсервисы отдают страницы как обычному посетителю, без упора в капчу на первой сотне запросов;
- обогащение из Яндекс.Карт и 2ГИС: телефон, сайт, адрес, часы работы — то, чего в реестре нет;
- хранение истории изменений, чтобы видеть, что поменялось между выгрузками. По ценам конкурентов у нас так накопилось около 3,8 ГБ базы — тот же принцип применим и к реестру: не «снимок на сегодня», а история;
- выгрузка в нужный формат — таблица, 1С, CRM, сайт — и телеграм-бот, который присылает готовый файл и сообщает о сбое;
- запуск по расписанию на своём сервере, без присмотра: раз в месяц реестр обновился — обновилась и база.
Отдельно про закон. Юрлицо — не персональные данные, а вот ФИО индивидуального предпринимателя ими является, и обращаться с такой базой нужно по 152-ФЗ. Массовая рассылка рекламы по собранным контактам без согласия получателя нарушает статью 18 закона «О рекламе». Собрать базу законно; что вы с ней делаете дальше — отдельный вопрос.
Соберём под ваш случай и покажем на ваших данных.
Сбор данных →