在 R 中的 aspx 表单中输入值和网络抓取结果



>我正在尝试使用县网站抓取财产信息首先我想网站抓取:网址: http://reparcelasmt.loudoun.gov/search/commonsearch.aspx?mode=parid例如:输入"123205197000"的税务包裹 ID #点击搜索单击该行以查看属性详细信息选择"住宅"选项卡刮擦"主楼"下的表格

其次,到目前为止我所做的是:我使用从aspx网站抓取取得了一些进展

require(httr)
require(XML)
basePage <- "http://reparcelasmt.loudoun.gov"
h <- handle(basePage)
GET(handle = h)
res <- GET(handle = h, path = "/search/commonsearch.aspx?mode=parid")
resXML <- htmlParse(content(res, as = "text"))

在查看 resXML 时,我发现了以下 html 代码,我认为可能需要填写并以某种方式提交。 我认为HTML中可能相关的关键字是:id="Form1"和id="action"

<form name="Form1" method="post" action="Disclaimer.aspx?FromUrl=..%2fsearch%2fcommonsearch.aspx%3fmode%3dparid" id="Form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTg0Mjk5NDk3MWRkj8q93u53cL62jCmCkDzR+iRJJ70=">
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQL8q9ymDgLpuJU7Aub60+ELAuO8lrkBAtL2kugI8BSyTTneHZXvLUVQf7YJFvW03XQ=">
<table cellpadding="1" width="430" align="center">
<tr>
<td align="center">
<input onclick="__doPostBack('btDisagree','')" name="btDisagree" type="button" id="btDisagree" class="MenuButton" style="WIDTH: 100px" value="Disagree">
</td><td align="center">
<input onclick="__doPostBack('btAgree','')" name="btAgree" type="button" id="btAgree" class="MenuButton" style="WIDTH: 100px" value="Agree">
</td></tr></table>
<input name="hdURL" type="hidden" id="hdURL" value="../search/commonsearch.aspx?mode=parid">
<input name="action" type="hidden" id="action">
</form>

如果有人对如何进行有任何想法,那就太棒了。

谢谢。马 特

我能够使用以下代码提取与ID 123205197000相关的文本:

library(RSelenium)
library(pagedown)
shell('docker run -d -p 4445:4444 selenium/standalone-firefox')
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L, browserName = "firefox")
remDr$open()
remDr$navigate("https://reparcelasmt.loudoun.gov/pt/search/CommonSearch.aspx?mode=PARID")
remDr$screenshot(display = TRUE, useViewer = TRUE) 
web_Obj_InpParid <- remDr$findElement("id", "inpParid")
web_Obj_InpParid$sendKeysToElement(list("123205197000"))
web_Obj_btSearch <- remDr$findElement("id", "btSearch")
web_Obj_btSearch$clickElement()
web_Obj_Table <- remDr$findElement("xpath", "//*[@id='frmMain']/div[3]/div")
text <- web_Obj_Table$getElementText()[[1]]
text <- strsplit(text, "n")

最新更新