Bukan kenalan pertama dengan portal Rosreestr
Pengacara mana pun pernah meminta Rosreestr (Layanan Federal untuk Registrasi Negara, Kastrasi dan Kartografi). Saat-saat ketika untuk permintaan itu perlu dijalankan ke cabang Rosreestr dan mengajukan permintaan di atas kertas adalah hal di masa lalu. Rosreestr telah meluncurkan beberapa layanan online yang dapat Anda gunakan tanpa meninggalkan rumah Anda. Layanan ini mencakup permintaan ekstrak dari Unified State Register of Real Estate. Situs resmi untuk memulai.
Setiap orang yang telah berhasil bekerja dengan situs ini mengetahui bahwa untuk menerima ekstrak dari USRN, yang akan berisi informasi tidak hanya tentang karakteristik umum dari fasilitas tersebut, tetapi juga tentang pemegang hak cipta dari fasilitas ini, perlu untuk pergi ke akun pribadi Rosreestr.
Mungkin ini cara mudah untuk mendapatkan satu atau lebih pernyataan. Namun, apa yang harus dilakukan jika Anda membutuhkan paket ekstrak USRN? Misalkan Anda bekerja dengan real estat atau memiliki sejumlah objek, jumlah totalnya lebih dari 10. Sebagai aturan umum, Anda perlu menerima ekstrak dari USRN setidaknya 1 kali per tahun agar dapat segera merespons dalam bidang hukum untuk perubahan yang tidak diinginkan dalam Daftar Federal jika itu terjadi di samping milik Anda kemauan.
Anda dapat secara manual mengirimkan permintaan melalui akun pribadi Anda, atau Anda dapat menggunakan api Rosreestr. Opsi pertama sangat melelahkan. Selain fakta bahwa layanan online Rosreestra itu sendiri bekerja sangat lambat dengan hang konstan, pengguna biasa juga diundang untuk menyerahkan gudang senjata untuk objek ketika mengirimkan setiap permintaan. Misalnya, permintaan sebidang tanah:
Yaitu, untuk mengetahui informasi tentang objek dan mendapatkan ekstrak darinya, secara fisik. orang tersebut harus sudah mengetahui semua karakteristik objek! Dan setiap kali Anda meminta informasi, Anda harus mengisi semua kolom. Apa yang harus dikatakan sangat tidak nyaman. Terima kasih untuk setidaknya menyediakan bahwa tanah dapat diukur dalam milimeter persegi.
Opsi kedua untuk mendapatkan ekstrak dari USRN adalah api Rosreestr. Api adalah seperangkat instruksi program, yang dengannya bagian perangkat lunak Anda dan bagian dari informasi pertukaran Rosreestr tanpa partisipasi Anda. Suatu hal yang nyaman jika semuanya bekerja dengan benar. Dan seseorang bisa selesai.
Namun, jika Anda melihat halaman di mana Rosreestr menjelaskan cara menerapkan api yang nyaman, Anda merasa tidak nyaman.
Dokumen dengan uraian diposting di sini -
rosreestr.ru/wps/portal/cc_ib_documents?documentId=1521Hanya membutuhkan 19 halaman, tetapi ditulis dalam bahasa teknis dan menunjukkan bahwa kita tidak dapat melakukannya tanpa tanda tangan digital. Secara umum, untuk waktu yang lama, itu tidak dapat dipahami dan tidak nyaman. Ayo jalan lebih pendek.
Saat bekerja dengan situs gantung Rosreestr, kita membutuhkan pemahaman tentang alat Python seperti harapan. Alat yang paling cocok untuk bekerja dengan situs ini, setidaknya pada tahap pengembangan layanan Rosreestra saat ini.
Ketika halaman dimuat secara perlahan dimuat di browser, elemen-elemen pada halaman ini dapat muncul pada interval waktu yang berbeda (atau tidak muncul sama sekali). Ini membuatnya sulit untuk menemukan elemen, pengecualian ElementNotVisibleException atau NoSuchElement dilemparkan secara berkala. Dengan menggunakan harapan, kita bisa menyelesaikan masalah ini.
Menunggu memberikan interval waktu tertentu antara tindakan yang dilakukan - pencarian elemen atau operasi lainnya dengan elemen.
Karena kami menggunakan modul selenium dalam pekerjaan kami, kami akan bekerja dengan apa yang ditawarkannya. Selenium menyediakan dua jenis harapan - implisit dan eksplisit.
Menunggu secara eksplisit adalah kode yang dengannya Anda menentukan kondisi apa yang harus terjadi agar kode lebih lanjut dapat dieksekusi. Sebelumnya kami menggunakan time.sleep (), yang menetapkan batas waktu yang tepat. Tetapi opsi ini tidak sepenuhnya berhasil. Kelemahan dari itu adalah bahwa jika Anda tidak menebak downtime (tidur), program akan macet. Ada metode yang lebih nyaman yang dapat membantu Anda menulis kode yang mengharapkan sebanyak yang Anda butuhkan.
Kami sedang menulis sebuah program untuk bekerja dengan Rosreestr online
Mari beralih ke program kami.
Esensinya adalah bahwa ketika memasuki situs web Rosreestr, ia masuk melalui akun pribadi orang fisik. orang-orang dan selanjutnya mulai secara independen mengirimkan permintaan untuk ekstrak dari USRN. Program kami akan menerima data untuk permintaan dari file Excel (di mana itu tanpa itu). Satu peringatan. Saat mengirimkan permintaan, situs web Rosreestr memiliki bidang dengan alamat objek. Akan ada kesulitan dengan itu, karena alamat di Rosreestr dibuka dengan cara khusus. Ini harus diperhitungkan dalam program.
Mari kita mulai.
Sebelum Anda mulai, siapkan tabel excel dengan data sumber dalam format berikut:
Nomor-nama pemegang hak cipta-alamat properti- jenis properti- daerah nomor kadaster. Atas permintaan, kita akan membutuhkan semua bidang dalam tabel kecuali "nomor" dan "nama pemegang hak cipta".
Sekarang buat file python baru - rosreestr.py. Dan kami mengimpor modul yang diperlukan:
import webbrowser,time from selenium import webdriver import csv from selenium.webdriver.common.keys import Keys from selenium.common.exceptions import NoSuchElementException import openpyxl
Buka file excel dengan data real estat:
wb = openpyxl.load_workbook('activ2.xlsx') sheet=wb.get_active_sheet()
Kami pergi ke situs web Rosreestr. Karena pintu masuk ke situs itu sendiri mungkin sudah tertunda, Anda perlu menetapkan harapan:
browser = webdriver.Firefox() browser.get ('https://rosreestr.ru/') time.sleep(5)
Di sini Anda dapat meninggalkan waktu saja. Tidur 5 detik. Tapi lebih baik, menggunakan harapan, tulis seperti ini:
browser.implicitly_wait(40)
Sekarang kita perlu menunggu tombol muncul di akun pribadi Anda dan mengkliknya:
act = browser.find_element_by_css_selector('#top_panel > a:nth-child(4)') act.click()
Karena pendaftaran di akun pribadi Anda dilakukan melalui portal Layanan Negara, situs mengalihkan ke layanan Negara dan ini juga terjadi dengan penundaan, pertimbangkan ini:
browser.implicitly_wait(40) act = browser.find_element_by_id('mobileOrEmail') act.click()
Sekarang program akan memberikan otorisasi kepada kami di situs web Layanan Negara dengan memasukkan nama pengguna dan kata sandi (bukan nama pengguna dan kata sandi, masukkan data Anda):
i=0 for i in '@mail.ru': act.send_keys(i) time.sleep (0.1) act = browser.find_element_by_id('password') act.click() i=0 for i in '': act.send_keys(i) time.sleep (0.1) act = browser.find_element_by_id('loginByPwdButton') act.click()
Setelah program menekan tombol enter, jendela berikut mungkin muncul sebelum otorisasi:
Di sini Anda perlu memilih nat pemilih CSS. wajah. Ingat bagaimana melakukannya? Klik kanan pada ikon Pribadi orang ... - jelajahi elemen:
Dan salin pemilih CSS:
Kami akan menambahkannya ke program kami:
act = browser.find_element_by_css_selector('tr.not-border:nth-child(1) > td:nth-child(2) > div:nth-child(2)') act.click()
Sekarang kita telah login, browser akan mengarahkan kita dari situs web State Services ke situs web Rosreestr. Di sana, program kami harus mengklik item "Minta informasi tentang real estat dan (atau) pemiliknya":
Kami akan memasukkan kode yang sesuai:
act = browser.find_element_by_css_selector('div.services-item:nth-child(5) > div:nth-child(1) > span:nth-child(2)') act.click() act = browser.find_element_by_css_selector('div.services-item:nth-child(5) > table:nth-child(2) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(2) > a:nth-child(1)') act.click()
Kami sampai di halaman awal untuk mengajukan permintaan, di mana 5 langkah diharapkan dari kami:
Untuk menuju ke langkah kedua, Anda perlu memeriksa halaman dan klik berikutnya. Nyatakan ini dalam kode:
act = browser.find_element_by_class_name('PGU-LabelIcon') act.click() act = browser.find_element_by_css_selector('#__nextStep') act.click()
Kami berada di langkah ke-2 situs web Rosreestr. Di sini perlu untuk mengisi kategori bidang pemohon, semua data lainnya diambil secara otomatis dari layanan publik. Kemudian klik "Next":
Dalam kode, tampilannya seperti ini:
act = browser.find_element_by_css_selector('#Form7\.step2\.specialDeclarantKind\.code > div:nth-child(2) > div:nth-child(1)') act.click() act = browser.find_element_by_css_selector('.opened > div:nth-child(3) > div:nth-child(1) > div:nth-child(2)') act.click() act = browser.find_element_by_css_selector('#__nextStep') act.click()
Jika kami menjalankan program kami, kemungkinan besar kami akan mendapatkan kesalahan:
Kami menangani kesalahan ini sebagai berikut:
try: act = browser.find_element_by_class_name('PGU-LabelIcon') except: browser.refresh() time.sleep (40) act = browser.find_element_by_class_name('PGU-LabelIcon')
Sekarang, jika muncul situasi di mana halaman tidak dimuat, program akan memperbarui browser dan mencoba lagi untuk mengklik ikon yang diinginkan. Sayangnya, harapan tidak berfungsi di sini, dan Anda harus menggunakan waktu yang lama dan terbukti. Tidur ().
Kami berada di langkah ketiga dan ini adalah yang paling melelahkan:
Penting untuk mengisi semua kolom dengan tanda "*".
Mari kita mulai dengan memasukkan objek:
n=1 i=sheet['B'+str(n)].value
Di sini kita mulai dengan sel di excel, di mana kita memiliki nama objek yang ditulis. Jika, misalnya, "Tanah plot" dimasukkan dalam sel, maka program memilih item yang sesuai menggunakan pemilih css. Semuanya juga terjadi dengan objek jenis lain di dalam sel - program memprosesnya.
Selanjutnya, kita klik pada pemilih-css dari nomor kadaster, jenis pernyataan dan alamat objek, pemilih ini sama untuk semua objek:
Sekarang Anda perlu mengarahkan alamat:
for i in sheet['D'+str(n)].value: act.send_keys(i) time.sleep (0.1) print(sheet['D'+str(n)].value) i=input(" eneter enter: ") act = browser.find_element_by_css_selector('a.button-custom:nth-child(2)') act.click()
Alamat diambil dari kolom C dari tabel excel. Ada jeda dalam bentuk kebangkitan kembali tindakan pengguna. Ini disebabkan oleh fakta bahwa alamat di Rosreestr mungkin berbeda dari alamat yang Anda miliki dan kemungkinan besar alamatnya. Oleh karena itu, program, memasukkan alamat dari tabel di situs, akan mengharapkan pengguna menekan enter pada juru bahasa untuk melanjutkan lebih jauh.
Langkah-langkah yang tersisa di portal Rosreestr adalah yang paling luar biasa, di sana program cukup mengklik tombol pada portal "Next" dan mengirimkan permintaan ke Rosreestr:
Di akhir program, tambahkan pembaruan browser:
browser.refresh() time.sleep (2)
Jika program bekerja dengan benar, tetap hanya untuk memulai siklus melalui semua sel dengan objek di file excel kami. Untuk melakukan ini, tambahkan di awal blok sebelum
i=sheet['B'+str(n)].value
:
while True: if n<36:
dan pada akhirnya:
n+=1
, di mana n adalah jumlah real estat dalam tabel excel.
Teks lengkap program dapat dilihat di
sini .