Obtenez un extrait de Rosreestr via FSIS USRN et python. Partie 1

Déclarations bon marché, quoi de mieux?


Roman Andreyevich Kartsev a un bon monologue sur l' écrevisse d'hier pour 5 roubles. et aujourd'hui pour 3. Nous supposons que le dernier message portait sur les écrevisses pour 5 roubles. Depuis l'extrait de l'USRN est de 300 roubles chacun, bien que tout le monde ne puisse pas se le permettre, s'il s'agit de demandes de masse.

Cette fois, réfléchissez à la manière d'obtenir le même résultat en dépensant 400 roubles. pour 100 extraits de l'USRN. Notre programme effectuera des manipulations simples, se rendra sur le site, remplira pour nous tous les champs nécessaires lors de la soumission d'une demande à Rosreestr. Comme la dernière fois, nous n'utiliserons pas l'API Rosreestr.

Cela ressemblera à ceci:


Le portail Rosreestra suppose que lorsque vous travaillez avec le FSIS, vous recevrez une clé sur le portail - une chaîne numérique de caractères. Cette clé est entrée une seule fois lorsque vous travaillez avec le Service d'information de l'État fédéral pour entrer dans l'espace de travail et est contenue dans la section Mes clés:



Nous supposons que vous avez reçu la clé vous-même. La procédure pour l'obtenir n'est pas compliquée.
Nous allons maintenant écrire un programme qui automatise la soumission des demandes.

Commençons par un programme simple qui soumettra une demande au système.

Demandes dans USRN - version 2.0


Importer des modules:

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

Nous allons sur le site du FSIS USRN:

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

Nous serons accueillis par une fenêtre conviviale pour entrer la clé Rosreestr, qui a été discutée ci-dessus:



Nous déterminons le sélecteur CSS de la fenêtre dans laquelle vous souhaitez saisir la clé, entrez votre clé et accédez à FSIS USR en cliquant sur le bouton "Connexion":

 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) 

Ici, vous devez entrer des parties de votre clé dans les champs avec des symboles «-», car le programme l'entrera sur le site en parties, en sautant par-dessus les champs.

Si tout se passe bien, nous entrerons dans la fenêtre système:



Puisque nous rechercherons un bien immobilier, le programme devrait cliquer sur "Rechercher un bien immobilier", respectivement:

 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) 

Nous allons maintenant entrer le numéro cadastral dans les champs appropriés et indiquer la zone à rechercher. Sans entrer de données sur la zone, vous ne pouvez pas passer à l'étape suivante:

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

Notre prochaine fenêtre:



Ici, vous devez cliquer sur l'objet formé en bas de la page, procédez comme suit:

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

Et nous arrivons à la dernière étape, où nous sommes à nouveau accueillis par le captcha. Nous devons également cliquer sur le bouton de demande d'envoi:



Entrez le captcha à l'aide de l'interpréteur manuellement. Jusqu'à présent, nous utilisons cette méthode de «contournement» du 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) 

* Autrement dit, le programme attendra jusqu'à ce que l'utilisateur entre manuellement le captcha dans la fenêtre avec le programme et appuie sur "Entrée".

Et, en outre, le programme lui-même envoie une demande au Federal State Property Inspection Register:

 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) 

Et clique sur «Continuer le travail»:



Nous avons soumis avec succès une demande pour un objet.

Vous pouvez vérifier que la demande a bien été envoyée au FSIS avec succès dans la section "Mes candidatures" dont nous sommes informés.

Maintenant, nous devons commencer le cycle de programme pour tous les objets dans le tableau Excel et ... en quelque sorte vaincre le captcha. Cependant, c'est une histoire complètement différente. Bien que l'indice soit resté dans le code du programme, téléchargé sur l'échangeur.

Téléchargez le programme - ici .

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


All Articles