Cómo llevar la declaración USRN a un formato legible usando Python



Un camino espinoso y difícil de una persona que se ha encontrado con el FSIS USRN Rosreestr. Está esperando interminables esperas a que se cargue el navegador, claves, captchas, intervalos entre solicitudes de 5 minutos. ¿Por qué iba a sufrir tanto? Ya había contribuido con el dinero que tanto le costó ganar cuando decidió trabajar con este sistema y encargar sus extractos. Pero no, obtener un extracto de la USRN es como desvestir cebollas. El último paso que le espera al paciente: el codiciado extracto descargado está representado por un archivo zip, en el que, um, otro archivo y un archivo sig. Y el archivo de declaración en sí ya está dentro. Pero tampoco es fácil de leer, está en xml. Y para que todo crezca junto, resulta que es necesario descargar este xml junto con sig a una página especial de Rosreestr. Y ahí, todavía hay un captcha esperando. ¡Y así con cada declaración! Hoy superaremos este último dolor usando Python.



Tarea:



  • descomprime todo el zip en la carpeta,
  • descargar por especificación. enlace a Rosreestr,
  • finalmente descarga !, una vista legible por humanos de la declaración.


Entonces, inicialmente en la carpeta hay archivos zip descargados de extractos:







Después de importar los módulos de Python:



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


Desempaquetemos todos los archivos zip y eliminémoslos para que no se confundan con el contenido:



zipFiles = []
sigFiles = []
for filename in os.listdir('.'):
    if filename.endswith('.zip'):        
        zipfile.ZipFile(filename, 'r').extractall()
        os.remove(filename)


Tenemos archivos zip y archivos sig para ellos, que luego se subirán al sitio web de Rosreestr:







Vaya al ciclo principal del programa para todos los archivos en el directorio (en mi caso, "C: / 2"):



for filename in zipFiles:    
    act = browser.find_element_by_id('sig_file')
    act.send_keys('C:\\2\\'+str(filename)+'.sig')
    act = browser.find_element_by_id('xml_file')
    # zip 
    zip_ref = zipfile.ZipFile(filename, 'r').extractall()
    # xml  
    for f in os.listdir('.'):
        if f.endswith('.xml'):
            print(f)
    # xml   
            act.send_keys('C:\\2\\'+str(f))    
    act = browser.find_element_by_css_selector('input.brdg1111')
    act.click()
    i = str(input(" : "))
    for b in i:
        act.send_keys(b)
        time.sleep (0.1)
    #act.submit()
    act = browser.find_element_by_css_selector('.terminal-button-bright')
    act.click()
    time.sleep (5)
    
    try:
        act = browser.find_element_by_link_text('   ')
        act.click()


Después de cargar con éxito la página del portal Rosreestr rosreestr.gov.ru/wps/portal/cc_vizualisation , el programa encontrará el archivo zip en el directorio, obtendrá el archivo de declaración xml desde allí y lo insertará en el campo requerido en el sitio web. El programa hará lo mismo con el archivo sig adjunto al xml:







A continuación, el programa esperará a que se







ingrese el captcha : Después de que el usuario ingrese el captcha, lo enviará al sitio y hará clic en el enlace de descarga para el extracto ya "normal" de la USRN:







Se abrirá una ventana en la que se terminó extracto, que se puede guardar en html o presionando CTRL + P en Chrome - en pdf.



Queda por agregar captcha de resolución automática y descarga automática de extractos legibles por humanos. Pero esto es lo más simple aquí, ¿no?



El código del programa está aquí .



All Articles