Obtenha uma extração do Rosreestr através do FSIS USRN e python. Parte 1

Declarações baratas, o que poderia ser melhor?


Roman Andreyevich Kartsev tem um bom monólogo sobre o lagostim de ontem por 5 rublos. e hoje para 3. Assumimos que o último post foi sobre lagostins por 5 rublos. Como o extrato da USRN é de 300 rublos cada, embora nem todos possam pagar, se se trata de pedidos em massa.

Desta vez, considere como obter o mesmo resultado gastando 400 rublos. por 100 extratos da USRN. Nosso programa realizará manipulações simples, acessará o site, preencherá todos os campos necessários ao enviar uma solicitação à Rosreestr. Como da última vez, não usaremos a API do Rosreestr.

Será algo parecido com isto:


O portal Rosreestra assume que, ao trabalhar com o FSIS, você receberá uma chave no portal - uma sequência digital de caracteres. Essa chave é inserida uma vez ao trabalhar com o Serviço de Informações do Estado Federal para entrar na área de trabalho e está contida na seção Minhas Chaves:



Assumimos que você mesmo recebeu a chave. O procedimento para obtê-lo não é complicado.
Agora vamos escrever um programa que automatiza o envio de solicitações.

Vamos começar com um programa simples que enviará uma solicitação ao sistema.

Pedidos no USRN - versão 2.0


Módulos de importação:

import webbrowser,time from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.common.exceptions import NoSuchElementException import os 

Vamos ao site do FSIS USRN:

 browser = webdriver.Firefox() browser.implicitly_wait(40) browser.get ('https://rosreestr.ru/wps/portal/p/cc_present/ir_egrn') 

Seremos recebidos por uma janela amigável para inserir a chave do Rosreestr, que foi discutida acima:



Determinamos o seletor de CSS da janela em que você deseja inserir a chave, insira sua chave e vá para o FSIS USR clicando no botão "Login":

 act = browser.find_element_by_css_selector('.v-panel-content > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > input:nth-child(1)') for i in '---------': act.send_keys(i) time.sleep(2) act = browser.find_element_by_css_selector('.v-panel-content > div:nth-child(1) > div:nth-child(1) > div:nth-child(3) > div:nth-child(1) > input:nth-child(1)') for i in '----': act.send_keys(i) time.sleep(2) act = browser.find_element_by_css_selector('.v-panel-content > div:nth-child(1) > div:nth-child(1) > div:nth-child(5) > div:nth-child(1) > input:nth-child(1)') for i in '----': act.send_keys(i) time.sleep(2) act = browser.find_element_by_css_selector('.v-panel-content > div:nth-child(1) > div:nth-child(1) > div:nth-child(7) > div:nth-child(1) > input:nth-child(1)') for i in '----': act.send_keys(i) time.sleep(2) act = browser.find_element_by_css_selector('.v-panel-content > div:nth-child(1) > div:nth-child(1) > div:nth-child(9) > div:nth-child(1) > input:nth-child(1)') for i in '--------': act.send_keys(i) time.sleep(2) act = browser.find_element_by_css_selector('.v-button-normalButton > span:nth-child(1) > span:nth-child(1)') act.click() time.sleep(2) 

Aqui você precisa inserir partes da sua chave nos campos com símbolos "-", pois o programa a inserirá no site em partes, saltando sobre os campos.

Se tudo der certo, entraremos na janela do sistema:



Como procuraremos imóveis, o programa deve clicar em "Pesquisar imóveis", respectivamente:

 act = browser.find_element_by_css_selector('.v-gridlayout-margin > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > span:nth-child(1) > span:nth-child(2)') act.click() time.sleep(1) 

Agora vamos inserir o número cadastral nos campos apropriados e indicar a área a ser pesquisada. Sem inserir dados na área, você não pode prosseguir para a próxima etapa:

 act = browser.find_element_by_css_selector('.v-verticallayout-searchFormOuter > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > input:nth-child(1)') act.click() for i in '66:36:2801001:223': act.send_keys(i) act = browser.find_element_by_css_selector('.v-filterselect-error > input:nth-child(1)') act.click() for i in ' ': act.send_keys(i) time.sleep(5) act.send_keys(Keys.ENTER) act = browser.find_element_by_css_selector('.v-horizontallayout-borderTop > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > span:nth-child(1) > span:nth-child(1)') act.click() 

Nossa próxima janela:



Aqui você precisa clicar no objeto formado na parte inferior da página, faça o seguinte:

 act = browser.find_element_by_css_selector('.v-table-table') act.click() 

E chegamos à etapa final, onde somos novamente recebidos pelo captcha. Também precisamos clicar no botão enviar solicitação:



Digite o captcha usando o intérprete manualmente. Até agora, usamos este método de "contornar" o captcha:

 act = browser.find_element_by_css_selector('.v-textfield') act.click() i=input("     ENTER: ") for a in i: act.send_keys(a) time.sleep(1) act.send_keys(Keys.ENTER) 

* Ou seja, o programa aguardará até que o usuário entre manualmente no captcha na janela com o programa e pressione “enter”.

Além disso, o próprio programa envia uma solicitação ao Registro de Inspeção Estadual da Propriedade Federal:

 act = browser.find_element_by_css_selector('.v-horizontallayout-blockNotTall > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > span:nth-child(1) > span:nth-child(1)') act.click() time.sleep(3) 

E clica em "Continuar o trabalho":



Enviamos com sucesso uma solicitação para um objeto.

Você pode verificar se a solicitação foi realmente enviada com êxito ao FSIS na seção "Meus aplicativos", sobre a qual somos informados.

Agora precisamos iniciar o ciclo do programa para todos os objetos na tabela do Excel e ... de alguma forma, derrotar o captcha. No entanto, esta é uma história completamente diferente. Embora a dica permaneça no código do programa, carregada no trocador.

Faça o download do programa - aqui .

Source: https://habr.com/ru/post/pt461045/


All Articles