الحصول على مقتطف من Rosreestr من خلال FSIS USRN وبيثون. الجزء 1

تصريحات رخيصة ، ماذا يمكن أن يكون أفضل؟


الروماني Andreyevich Kartsev لديه مناجاة جيدة عن جراد البحر أمس لمدة 5 روبل. واليوم لمدة 3. نحن نفترض أن آخر مشاركة كانت حول جراد البحر لمدة 5 روبل. لأن المقتطف من USRN هو 300 روبل لكل منهما ، على الرغم من أنه لا يمكن للجميع تحمل كلفته ، إذا كان الأمر يتعلق بالطلبات الجماعية.

هذه المرة ، فكر في كيفية الحصول على نفس النتيجة من خلال إنفاق 400 روبل. ل 100 مقتطفات من USRN. سيقوم برنامجنا بمعالجة بسيطة ، انتقل إلى الموقع ، وقم بملء جميع الحقول اللازمة عند تقديم طلب إلى Rosreestr. مثل آخر مرة ، لن نستخدم Rosreestr api.

سيبدو شيء مثل هذا:


تفترض بوابة Rosreestra أنه عند العمل مع FSIS ، ستتلقى مفتاحًا على البوابة - سلسلة أحرف رقمية. يتم إدخال هذا المفتاح لمرة واحدة عند العمل مع خدمة معلومات الولاية الفيدرالية لإدخال مساحة العمل وهو موجود في قسم مفاتيحي:



نحن نفترض أنك تلقيت المفتاح بنفسك. إجراءات الحصول عليها ليست معقدة.
الآن دعنا نكتب برنامجًا يقوم بأتمتة تقديم الطلبات.

لنبدأ ببرنامج بسيط يقدم طلبًا واحدًا للنظام.

الطلبات في USRN - الإصدار 2.0


وحدات الاستيراد:

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

نذهب إلى موقع FSIS USRN:

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

سيتم الترحيب بنا من خلال نافذة ودية لإدخال مفتاح Rosreestr ، والذي تمت مناقشته أعلاه:



نحدد محدد CSS للنافذة حيث تريد إدخال المفتاح ، وأدخل المفتاح وانتقل إلى FSIS USR بالنقر فوق الزر "تسجيل الدخول":

 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) 

تحتاج هنا إلى إدخال أجزاء من مفتاحك في الحقول برموز "-" ، لأن البرنامج سيدخلها على الموقع في أجزاء ، ويقفز فوق الحقول.

إذا نجح كل شيء بنجاح ، فسوف ندخل في نافذة النظام:



بما أننا سنبحث عن العقارات ، يجب أن ينقر البرنامج على "Search for real estate" ، على التوالي:

 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) 

الآن سنقوم بإدخال رقم المساحية في الحقول المناسبة والإشارة إلى المنطقة للبحث. بدون إدخال بيانات في المنطقة ، لا يمكنك المتابعة إلى الخطوة التالية:

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

النافذة التالية:



تحتاج هنا إلى النقر فوق الكائن الذي تم تكوينه في أسفل الصفحة ، قم بذلك:

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

ونصل إلى الخطوة الأخيرة ، حيث التقينا مرة أخرى بواسطة كلمة التحقق. نحتاج أيضًا إلى النقر فوق زر إرسال الطلب:



أدخل كلمة التحقق باستخدام المترجم يدويًا. حتى الآن ، نحن نستخدم طريقة "الالتفاف" على كلمة التحقق:

 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) 

* هذا يعني أن البرنامج سينتظر حتى يقوم المستخدم بإدخال كلمة التحقق يدويًا في النافذة بالضغط على البرنامج "enter".

علاوة على ذلك ، يرسل البرنامج نفسه طلبًا إلى سجل فحص ملكية الولاية الفيدرالية:

 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) 

والنقر على "متابعة العمل":



لقد قدمنا ​​بنجاح طلبًا لكائن واحد.

يمكنك التحقق من أن الطلب قد تم بالفعل إرساله بنجاح إلى FSIS في قسم "طلباتي" ، والتي نعلم بها.

نحن الآن بحاجة إلى بدء دورة البرنامج لجميع الكائنات في جدول excel و ... هزيمة كلمة التحقق بطريقة أو بأخرى. ومع ذلك ، هذه قصة مختلفة تماما. على الرغم من أن تلميح بقي في رمز البرنامج ، وتحميلها إلى المبادل.

قم بتنزيل البرنامج - هنا .

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


All Articles