Obtenga un extracto de Rosreestr a través de FSIS USRN y python. Parte 1

Declaraciones baratas, ¿qué podría ser mejor?


Roman Andreyevich Kartsev tiene un buen monólogo sobre el cangrejo de ayer por 5 rublos. y hoy es para 3. Suponemos que la última publicación fue sobre cangrejos de río por 5 rublos. Dado que el extracto de la USRN es de 300 rublos cada uno, aunque no todos pueden pagarlo, si se trata de solicitudes masivas.

Esta vez, considere cómo obtener el mismo resultado gastando 400 rublos. por 100 extractos de la USRN. Nuestro programa realizará manipulaciones simples, irá al sitio, completará todos los campos necesarios cuando envíe una solicitud a Rosreestr. Como la última vez, no usaremos la API de Rosreestr.

Se verá más o menos así:


El portal de Rosreestra supone que cuando trabaje con el FSIS, recibirá una clave en el portal: una cadena de caracteres digital. Esta clave se ingresa una vez cuando se trabaja con el Servicio de Información del Estado Federal para ingresar al espacio de trabajo y se encuentra en la sección Mis claves:



Suponemos que recibió la clave usted mismo. El procedimiento para obtenerlo no es complicado.
Ahora escribiremos un programa que automatice el envío de solicitudes.

Comencemos con un programa simple que enviará una solicitud al sistema.

Solicitudes en USRN - versión 2.0


Importar módulos:

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

Vamos al sitio web del FSIS USRN:

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

Nos saludará una ventana amigable para ingresar la clave Rosreestr, que se discutió anteriormente:



Determinamos el selector CSS de la ventana donde se debe ingresar la clave, ingrese su clave y vaya al Registro del Servicio de Registro del Estado Federal, haciendo clic en el botón "Entrar":

 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) 

Aquí debe ingresar partes de su clave en los campos con símbolos "-", ya que el programa la ingresará en el sitio en partes, saltando sobre los campos.

Si todo funciona correctamente, entraremos en la ventana del sistema:



Como buscaremos bienes inmuebles, el programa debe hacer clic en "Buscar bienes inmuebles", 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) 

Ahora ingresaremos el número catastral en los campos apropiados e indicaremos el área a buscar. Sin ingresar datos en el área, no puede continuar con el siguiente paso:

 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() 

Nuestra próxima ventana:



Aquí debe hacer clic en el objeto formado en la parte inferior de la página, haga esto:

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

Y llegamos al paso final, donde nuevamente nos encontramos con el captcha. También debemos hacer clic en el botón Enviar solicitud:



Ingrese el captcha usando el intérprete manualmente. Hasta ahora, utilizamos este método de "evadir" el 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) 

* Es decir, el programa esperará hasta que el usuario ingrese manualmente el captcha en la ventana con el programa y presione "enter".

Y, además, el programa en sí envía una solicitud al Registro de Inspección de Propiedad del Estado 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) 

Y hace clic en "Continuar trabajando":



Hemos enviado correctamente una solicitud para un objeto.

Puede verificar que la solicitud se haya enviado correctamente al FSIS en la sección "Mis aplicaciones", de la que estamos informados.

Ahora tenemos que comenzar el ciclo del programa para todos los objetos en la tabla de Excel y ... de alguna manera vencer al captcha. Sin embargo, esta es una historia completamente diferente. Aunque la pista permaneció en el código del programa, se cargó en el intercambiador.

Descargue el programa aquí .

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


All Articles