Holen Sie sich einen Auszug aus Rosreestr über FSIS USRN und Python. Teil 1

Billige Aussagen, was könnte besser sein?


Roman Andreyevich Kartsev hat einen guten Monolog über die gestrigen Krebse für 5 Rubel. und heute für 3. Wir nehmen an, dass der letzte Beitrag über Krebse für 5 Rubel war. Da der Auszug aus der USRN jeweils 300 Rubel beträgt, kann es sich nicht jeder leisten, wenn es um Massenanfragen geht.

Überlegen Sie diesmal, wie Sie mit 400 Rubel das gleiche Ergebnis erzielen können. für 100 Auszüge aus der USRN. Unser Programm führt einfache Manipulationen durch, besucht die Website und füllt für uns alle erforderlichen Felder aus, wenn Sie eine Anfrage an Rosreestr senden. Wie beim letzten Mal werden wir die Rosreestr-API nicht verwenden.

Es wird ungefähr so ​​aussehen:


Das Rosreestra-Portal geht davon aus, dass Sie bei der Arbeit mit dem FSIS einen Schlüssel auf dem Portal erhalten - eine zeichen-digitale Zeichenfolge. Dieser Schlüssel wird einmalig eingegeben, wenn Sie mit dem Bundesinformationsdienst zusammenarbeiten, um den Arbeitsbereich zu betreten. Er ist im Abschnitt Meine Schlüssel enthalten:



Wir gehen davon aus, dass Sie den Schlüssel selbst erhalten haben. Das Verfahren, um es zu erhalten, ist nicht kompliziert.
Jetzt schreiben wir ein Programm, das die Übermittlung von Anfragen automatisiert.

Beginnen wir mit einem einfachen Programm, das eine Anfrage an das System sendet.

Anfragen in USRN - Version 2.0


Module importieren:

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

Wir besuchen die Website des FSIS USRN:

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

Wir werden von einem freundlichen Fenster zur Eingabe des Rosreestr-Schlüssels begrüßt, das oben besprochen wurde:



Wir bestimmen den CSS-Selektor des Fensters, in dem der Schlüssel eingegeben werden soll, geben Ihren Schlüssel ein und gehen zum Register des Bundesregistrierungsdienstes, indem wir auf die Schaltfläche "Enter" klicken:

 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) 

Hier müssen Sie Teile Ihres Schlüssels in die Felder mit den Symbolen „-“ eingeben, da das Programm ihn in Teilen auf der Site eingibt und über die Felder springt.

Wenn alles erfolgreich funktioniert, gelangen wir in das Systemfenster:



Da wir nach Immobilien suchen, sollte das Programm auf "Nach Immobilien suchen" klicken:

 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) 

Geben Sie nun in die entsprechenden Felder die Katasternummer ein und geben Sie den zu durchsuchenden Bereich an. Ohne Eingabe von Daten in den Bereich können Sie nicht mit dem nächsten Schritt fortfahren:

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

Unser nächstes Fenster:



Hier müssen Sie auf das Objekt unten auf der Seite klicken. Gehen Sie dazu folgendermaßen vor:

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

Und wir kommen zum letzten Schritt, wo uns das Captcha wieder begegnet. Wir müssen auch auf die Schaltfläche "Anfrage senden" klicken:



Geben Sie das Captcha manuell mit dem Interpreter ein. Bisher verwenden wir diese Methode, um Captcha zu „umgehen“:

 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) 

* Das heißt, das Programm wartet, bis der Benutzer das Captcha mit dem Programm manuell in das Fenster eingibt, und drückt die Eingabetaste.

Darüber hinaus sendet das Programm selbst eine Anfrage an das bundesstaatliche Immobilieninspektionsregister:

 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) 

Und klicken Sie auf "Arbeit fortsetzen":



Wir haben erfolgreich eine Anfrage für ein Objekt eingereicht.

Sie können im Abschnitt "Meine Anwendungen", über den wir informiert werden, überprüfen, ob die Anfrage tatsächlich erfolgreich an das FSIS gesendet wurde.

Jetzt müssen wir den Programmzyklus für alle Objekte in der Excel-Tabelle starten und ... das Captcha irgendwie besiegen. Dies ist jedoch eine ganz andere Geschichte. Obwohl der Hinweis im Programmcode verblieben ist, wurde er auf den Austauscher hochgeladen.

Laden Sie das Programm hier herunter.

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


All Articles