廉价的陈述,还有什么会更好?
罗曼·安德烈耶维奇·卡采夫(Roman Andreyevich Kartsev)
对昨天的
小龙虾有5卢布的
独白 。 今天是3。 我们假设最后一个帖子是关于小龙虾的5卢布。 由于USRN的提取物每次要300卢布,但如果涉及大量需求,并不是所有人都能买得起。
这次,考虑花费400卢布如何获得相同的结果。 从USRN中提取100种提取物。 我们的程序将执行简单的操作,转到网站,向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)
在这里,您需要将密钥的一部分输入到带有“-”符号的字段中,因为程序将在站点上分部分地输入密钥,从而跳过这些字段。
如果一切顺利,那么我们将进入系统窗口:

由于我们将搜索房地产,因此该程序应分别单击“搜索房地产”:
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表中的所有对象启动程序循环,并以某种方式击败验证码。 但是,这是一个完全不同的故事。 尽管提示保留在程序代码中,但已上载到交换器。
在
此处下载程序。