На сайте ФНС по адресу egrul.nalog.ru/index.html есть замечательный сервис проверки контрагентов или своих собственных обществ.
Суть проверки сводится к подаче запроса в ЕГРЮЛ (единый реестр фактов детальности юридических лиц) и получении тут же, онлайн, выписки из реестра.
Работа с сервисом не вызывает каких-либо затруднений: внес в поле ОГРН, нажал кнопку “Найти” и нажал кнопку “Скачать” ниже. Все, выписка получена.
Как здесь может помочь автоматизация? Очень просто.
Если ваш холдинг состоит из n-количества юридических лиц, то даже такая работа как копипастинг ОГРН в строку поиска сервиса может надоесть.
Избавимся от рутины и автоматизируем процесс подачи-скачивания выписок из ЕГРЮЛ!
В нашем случае программа будет “забирать” по одному ОГРН из заранее подготовленной таблицы excel, вносить значение в строку сервиса, нажимать необходимые кнопки.
В идеале работа программы будет выглядеть так:
Приступим.
Для начала подготовим таблицу excel, куда внесем ОГРН, по которым мы будем работать, в столбик:
Количество ОГРН не имеет значения (можно хоть весь ЕГРЮЛ скачать), главное чтобы они все были в столбце А.
Назовем файл выпискиЕГРЮЛ.xlsx и сохраним в рабочей директории python.
Теперь создадим сам файл с программой – egrul.py.
Первые строки программы, как обычно, начинаются с импорта необходимых модулей, далее мы выбираем браузер (в моем случае Chrome) и “заходим” на сайт:
Далее мы запускаем цикл по всем ОГРН в таблице excel:
Здесь надо обратить внимание на значения x вначале цикла:
2- это начальная ячейка с ОГРН (стартовая), которая соответствует A2 в excel таблице. Конечная ячейка будет A9, хотя в цикле указана цифра 10.
Это надо иметь ввиду, чтобы все ОГРН были обработаны и последнее значение не потерялось.
Между подачами запросов в ЕГРЮЛ программа выдерживает паузу в 30 секунд. Это может показаться недопустимо долго и этот период захочется сократить. Это можно сделать, поменяв значение в строке time.sleep(30) на, например, time.sleep(10). Однако в данном случае можно попасть под санкции сервиса ФНС и получить капчу. Данную капчу можно обойти, но это тема отдельного поста. А в этой программе лучше оставить задержку между подачами запросов в 30 секунд и пойти спокойно пить чай, пока программа за вас работает.
Ссылка на программу – здесь.
Ссылка на тестовую таблицу excel – здесь.
Суть проверки сводится к подаче запроса в ЕГРЮЛ (единый реестр фактов детальности юридических лиц) и получении тут же, онлайн, выписки из реестра.
Работа с сервисом не вызывает каких-либо затруднений: внес в поле ОГРН, нажал кнопку “Найти” и нажал кнопку “Скачать” ниже. Все, выписка получена.
Как здесь может помочь автоматизация? Очень просто.
Если ваш холдинг состоит из n-количества юридических лиц, то даже такая работа как копипастинг ОГРН в строку поиска сервиса может надоесть.
Избавимся от рутины и автоматизируем процесс подачи-скачивания выписок из ЕГРЮЛ!
В нашем случае программа будет “забирать” по одному ОГРН из заранее подготовленной таблицы excel, вносить значение в строку сервиса, нажимать необходимые кнопки.
В идеале работа программы будет выглядеть так:
Приступим.
Для начала подготовим таблицу excel, куда внесем ОГРН, по которым мы будем работать, в столбик:
Количество ОГРН не имеет значения (можно хоть весь ЕГРЮЛ скачать), главное чтобы они все были в столбце А.
Назовем файл выпискиЕГРЮЛ.xlsx и сохраним в рабочей директории python.
Теперь создадим сам файл с программой – egrul.py.
Первые строки программы, как обычно, начинаются с импорта необходимых модулей, далее мы выбираем браузер (в моем случае Chrome) и “заходим” на сайт:
Далее мы запускаем цикл по всем ОГРН в таблице excel:
Здесь надо обратить внимание на значения x вначале цикла:
2- это начальная ячейка с ОГРН (стартовая), которая соответствует A2 в excel таблице. Конечная ячейка будет A9, хотя в цикле указана цифра 10.
Это надо иметь ввиду, чтобы все ОГРН были обработаны и последнее значение не потерялось.
Между подачами запросов в ЕГРЮЛ программа выдерживает паузу в 30 секунд. Это может показаться недопустимо долго и этот период захочется сократить. Это можно сделать, поменяв значение в строке time.sleep(30) на, например, time.sleep(10). Однако в данном случае можно попасть под санкции сервиса ФНС и получить капчу. Данную капчу можно обойти, но это тема отдельного поста. А в этой программе лучше оставить задержку между подачами запросов в 30 секунд и пойти спокойно пить чай, пока программа за вас работает.
Ссылка на программу – здесь.
Ссылка на тестовую таблицу excel – здесь.
saw_tooth
ох, реализация «с лазерной пушки, которая вращается на орбите планеты Земля, по воробьям»
В ответе приходит хеш-строка URI, по которому есть результаты поиска в виде JSON.
Вместо Excel, куда удобнее и проще использовать csv, который нативными модулями парсится
Drakosh
Не оставляйте, пожалуйста пробелов перед скобками (при вызове функций).
Всегда оставляйте, пожалуйста пробелы вокруг знака равно.
Pep8 вам в помощь — habr.com/ru/post/251531
если бы код был на github то нашлись бы люди, которые это поправили. А как исправить код на картинке или выложенный в частное облако?
stalker1984
Воот матёрые програмисты подтянулись. PEP8 и прочее. Ребят, просто порадуйтесь за человека. Хочу сказать что иногда не обязательно быть прям хардкор-программистом чтобы просто радоваться плюсам автоматизации.
У меня случилась недавно такая история на работе — мы собираем досье на медизделие и в нём соответствующая нормативная документация на сырьё. На всё на это порядка 10 однотипных докуметов. Я за полчаса написал скрипт и сгенерировал более 2500 файлов съэкономив тем самым кучу времени и нервных клеток, себе и коллегам.
Я не программист (я химик), но иногда мне нравиться поступать разумно (пусть даже и с пушкой по пернатым).
Автору удачи!!!
Tinkz
согласен, как раз искал подобное решение, а про webdriver впервые слышу, т.ч. автору спасибо!
phaggi
Хорошо бы втянуть excel в pandas через df = pandas.read_xls(“ЕГРЮЛ.xlsx”) и там уже при помощи len(df.index) определить длину столбца, а не вписывать руками 30 в начало скрипта.
Впрочем, если скрипт для разового применения — сойдёт и так. А если для регулярного — лучше от «ручника» уйти.
zoldaten Автор
да, у меня есть такая реализация. без pandas, все проще. но ручник нужен для ситуации, если полезли капчи либо отошел, либо интернет отвалился. напишу как-нибудь попозже пост как кидаться запросами, в том числе игнорируя капчи.
technic93
А почему код картинкой? В Хабр можно легко вставить код с подсветкой.
zoldaten Автор
спасибо за комменты. первый пост, он такой ) тем более, что я юрист, а не программер. порой проще написать «лазерную пушку по воробьям» самому, чем идти в ИТ и объяснять, что это и зачем надо.
redskif
Лучше идите к начальству холдинга и выбивайте денег на какую нибудь платную систему, где будет вся свежая информация и из налоговой и из судов и еще откуда нибудь. Думаю, юрист не пропускающий важные события более ценен чем юрист умеющий программировать.
zoldaten Автор
Вот именно, и «еще откуда-нибудь». Все существующие системы Спарк, Правобот и т.п. предоставляют какую-то информацию. Эта информация не особо-то и нужна, иногда не релевантна, а иногда вообще вводит в заблуждение. Кроме того, разрабатывать мелкие сервисы такие программные монстры не будут. Здесь и рождается ниша для IT-юристов.
Xokare228
Капча, обработка jsona с ответом и всякое такое в сделку не входит, но дописывается просто