Dapatkan ekstrak dari Rosreestr melalui FSIS USRN dan python. Bagian 1

Pernyataan murah, apa yang bisa lebih baik?


Roman Andreyevich Kartsev memiliki monolog bagus tentang udang karang kemarin untuk 5 rubel. dan hari ini untuk 3. Kami berasumsi bahwa pos terakhir adalah tentang udang karang selama 5 rubel. Karena ekstrak dari USRN adalah 300 rubel masing-masing, meskipun tidak semua orang mampu membelinya, jika itu menyangkut permintaan massal.

Kali ini, pertimbangkan cara mendapatkan hasil yang sama dengan menghabiskan 400 rubel. untuk 100 ekstrak dari USRN. Program kami akan melakukan manipulasi sederhana, pergi ke situs, mengisi semua bidang yang diperlukan saat mengirimkan permintaan kepada Rosreestr. Seperti terakhir kali, kami tidak akan menggunakan api Rosreestr.

Akan terlihat seperti ini:


Portal Rosreestra mengasumsikan bahwa ketika bekerja dengan FSIS, Anda akan menerima kunci di portal - string karakter-digital. Kunci ini dimasukkan satu kali ketika bekerja dengan Layanan Informasi Negara Federal untuk memasuki ruang kerja dan terkandung di bagian Kunci Saya:



Kami berasumsi bahwa Anda menerima kunci itu sendiri. Prosedur untuk mendapatkannya tidaklah rumit.
Sekarang kami akan menulis sebuah program yang mengotomatiskan pengiriman permintaan.

Mari kita mulai dengan program sederhana yang akan mengirimkan satu permintaan ke sistem.

Permintaan dalam USRN - versi 2.0


Modul impor:

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

Kami pergi ke situs web FSIS USRN:

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

Kami akan disambut oleh jendela ramah untuk memasukkan kunci Rosreestr, yang telah dibahas di atas:



Kami menentukan pemilih CSS dari jendela di mana kunci harus dimasukkan, masukkan kunci Anda dan pergi ke Registrasi Layanan Pendaftaran Negara Federal, dengan mengklik tombol "Enter":

 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) 

Di sini Anda perlu memasukkan bagian dari kunci Anda ke dalam bidang dengan simbol "-", karena program akan memasukkannya di situs dalam bagian-bagian, melompati bidang.

Jika semuanya berhasil dengan sukses, maka kita akan masuk ke jendela sistem:



Karena kami akan mencari real estat, program harus mengklik "Cari real estat", masing-masing:

 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) 

Sekarang kita akan memasukkan nomor kadaster di bidang yang sesuai dan menunjukkan area yang akan dicari. Tanpa memasukkan data pada area, Anda tidak dapat melanjutkan ke langkah berikutnya:

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

Jendela kita selanjutnya:



Di sini Anda perlu mengklik objek yang dibentuk di bagian bawah halaman, lakukan ini:

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

Dan kita sampai pada langkah terakhir, di mana kita bertemu lagi dengan captcha. Kita juga perlu mengklik tombol kirim permintaan:



Masukkan captcha menggunakan penerjemah secara manual. Sejauh ini, kami menggunakan metode "mengelak" 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) 

* Yaitu, program akan menunggu sampai pengguna secara manual memasukkan captcha di jendela dengan program dan menekan "enter".

Dan, lebih lanjut, program itu sendiri mengirimkan permintaan ke Register Inspeksi Properti Negara 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) 

Dan klik pada "Lanjutkan kerja":



Kami telah berhasil mengirimkan permintaan untuk satu objek.

Anda dapat memverifikasi bahwa permintaan tersebut memang telah berhasil dikirim ke FSIS di bagian "Aplikasi Saya", yang kami informasikan.

Sekarang kita perlu memulai siklus program untuk semua objek di tabel excel dan ... entah bagaimana mengalahkan captcha. Namun, ini adalah kisah yang sangat berbeda. Meskipun petunjuk tetap dalam kode program, diunggah ke penukar.

Unduh programnya - di sini .

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


All Articles