«Маяки» в ЕГРЮЛ с python

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!


На сайте nalog.ru есть очень удобный сервис, который «покрывает» такие страхи владельца бизнеса как увод компании из под контроля без участия самого владельца. Отчасти естественно «покрывает», так как если захотят увести компанию, один сервис налоговой в этом не поможет.
Сервис уведомляет владельца предприятия, если в налоговую попало заявление о внесении каких-либо изменений в отношении данных компании, содержащихся в ЕГРЮЛ. Далее владелец может среагировать на ситуацию, заблокировав регистрацию изменений, если они не были им инициированы. Чтобы реализовать этот своеобразный мониторинг, необходимо поставить на компанию так называемый «маяк». В данной статье посмотрим, как работает сервис, как и кто может поставить маяки, сколько их можно поставить и как все это сделать «пакетно» с помощью python.
Сам сервис находится по адресу на сайте налоговой здесь.

Немного о страхах за бизнес.



Ссылка на оригинал картинки.
До появления описанных возможностей по мониторингу данных компании в ЕГРЮЛ было все грустно. Чтобы случайно не проснуться и узнать, что ты больше не владелец компании, каждый собственник придумывал свои решения. Один заказывал с регулярной периодичностью выписки ЕГРЮЛ на бумаге, что вовсе не гарантировало, что по истечение 7 дней компания не изменит владельца, другой с такой же регулярностью заглядывал в электронный ЕГРЮЛ, надеясь «поймать» неблагоприятный момент, третий договаривался в самой налоговой, оставляя там соответствующие письма-пожелания.
Можно долго рассуждать на тему, что ранее практика была не совершенна, и через институт добросовестного приобретателя можно было «приобрести» чужую компанию. Владелец узнавал об этом постфактум, когда ничего уже сделать было нельзя.

Как работает сервис сейчас.



Ссылка на оригинал картинки.
Все сделано очень удобно.
Сервис предоставляет возможность заинтересованному лицу (любому лицу) сформировать запрос о направлении по указанному им адресу электронной почты информации о факте представления в налоговый орган после размещения такого запроса документов в отношении указанного в таком запросе юридического лица, индивидуального предпринимателя.

Запрашиваемая информация будет направляться налоговым органом на адрес электронной почты (E-mail), указанный при регистрации (авторизации) заявителя в сервисе, не позднее рабочего дня, следующего за днем получения налоговым органом документов в отношении указанного в запросе юридического лица, индивидуального предпринимателя, в виде сообщения.
Вот как выглядит данное сообщение:


О чем оно говорит? В сообщении говорится о том, что кто-то подал заявление о внесении изменений в ЕГРЮЛ и, если ничего не делать, эти изменения произойдут. Какие изменения, налоговая не раскрывает.

Чтобы «поставить маяк на компанию» после авторизации надо подать новый запрос, нажав на кнопку «Новый запрос»:

Далее необходимо вбить ОГРН либо ОГРНИП, нажать «добавить»:


Все просто и бесплатно. Данную процедуру придется повторять всего лишь 1 раз в год. По истечение срока будет уведомление, что сроки заканчиваются.
Единственное неудобство это 100 «маяков» (ранее было 50) на одного зарегистрированного в системе и придется регистрировать несколько аккаунтов, если обществ для мониторинга много:


Еще одно неудобство — при добавлении новой компании в мониторинг, сервис подвисает, видимо, что-то проверяя:

В общем, на 100 запросов может уйти продолжительное время.
Чтобы это «превозмочь», воспользуемся python.

Из пушки по воробьям.



Ссылка на оригинал картинки.
Может кто-то сказать. Тем не менее, если программа сэкономит кому-то пару часов рабочего времени — это приятно.
Итак, наша программа на python будет «заходить» на сайт сервиса, авторизоваться, устанавливать маяки на общества по ОГРН, беря последние из excel-таблицы.
Импорты:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import openpyxl

Авторизация на сайте:
browser = webdriver.Firefox()
time.sleep (5)
browser.get ('https://service.nalog.ru/regmon/')
time.sleep(5)
act = browser.find_element_by_id('email')
act.click()
for i in 'email@yandex.ru':
        act.send_keys(i)
        time.sleep (0.1)        
act = browser.find_element_by_id('password')
act.click()
i=0
for i in 'password':
        act.send_keys(i)
        time.sleep (0.1)
act.submit()
time.sleep(5)

*не забываем email и пароль указать.

Открываем таблицу, берем из нее данные и используем их во благо:
wb = openpyxl.load_workbook('ВыпискиЕГРЮЛ.xlsx')
sheet=wb.get_sheet_by_name('Лист1')

# столбец с выписками ЕГРЮЛ
x=2
#a = tuple (str(sheet.cell(row=x, column=1).value)) # получаем кортеж из ОГРН в ячейке A2
for x in range (2,sheet.max_row):
        a = str(sheet.cell(row=x, column=1).value).strip()
        if a=='None':
            pass
        else:
                a = tuple (str(sheet.cell(row=x, column=1).value).strip()) 
                act = browser.find_element_by_css_selector('.float-right > button:nth-child(1)')
                act.click()
                time.sleep(4)
                act = browser.find_element_by_id('ogrn')
                act.click()                
                # вводим посимвольно в строку ОГРН, т.к. ввод сразу всего ОГРН не корректно обрабатывается
                i=0
                for i in range (13):
                        act.send_keys(a[i])
                        time.sleep (0.05)
                        i+=1
                act = browser.find_element_by_css_selector('div.regmon-tab-content:nth-child(3) > div:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > button:nth-child(2)')
                act.click()
                time.sleep(15)
                try:
                        act = browser.find_element_by_css_selector('.btn-alert')
                except:
                        time.sleep(10)
                        act = browser.find_element_by_css_selector('.btn-alert')
                act.click()
                time.sleep(3)
                x += 1
browser.quit()


После того, как программа отработает на сервисе будет таблица примерно следующего вида:


Маяки поставлены, спасибо за внимание.

Ссылка на оригинал картинки и анекдот оттуда —
Заказчик на объекте принимает работу у подрядчика.
Тот подводит его к выкопанной шахте диаметром 3 метра и глубиной 50 метров, заглядывают туда, а на дне горит прожектор.
Заказчик: — Что за херня???
Подрядчик: — Вот же чертеж! По нему и сделали.
Заказчик (переворачивая чертеж на 180 градусов): — Это маяк, бл*! МАЯК!

Скачать программу и тестовую excel-таблицу — здесь.
Источник: https://habr.com/ru/post/558218/


Интересные статьи

Интересные статьи

1. Введение Напишите ваш первый скрипт для Kodi/XBMC с помощью этого урока! Если вам нужна помощь с написанием плагина, открывайте урок http://kodi.wiki/view/Audio-video_add-on_tutorial ...
Последние примерно 2 месяца я ношу кольцо Oura, чтобы получать информацию о моём сне и о том, сколько я прошла шагов за день. Приложение считывает сон, разбитый на фазы (лёгкий, глубоки...
По запросу R или Python в интернете вы найдёте миллионы статей и километровых обсуждений по теме какой из них лучше, быстрее и удобнее для работы с данными. Но к сожалению особой пользы все эти с...
Детектирование аномалий — интересная задача машинного обучения. Не существует какого-то определенного способа ее решения, так как каждый набор данных имеет свои особенности. Но в то же время есть...
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...