【问题标题】:Enter value into aspx form in R and webscraping result在 R 和网络抓取结果中输入值到 aspx 表单中
【发布时间】:2015-03-27 22:01:15
【问题描述】:

我正在尝试使用县级网站对房产信息进行网络抓取 首先我想网页抓取: 网址:http://reparcelasmt.loudoun.gov/search/commonsearch.aspx?mode=parid 例如: 输入“123205197000”的税号包裹编号 点击搜索 单击该行以查看属性详细信息 选择住宅选项卡 刮掉“Primary Building”下的表格

到目前为止我所做的第二件事: 我使用Scraping from aspx website取得了一些进展

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>

如果有人对如何继续有任何想法,那就太好了。

谢谢。 马特

【问题讨论】:

  • 查看rvest 包,它具有html_form()set_values()submit_form() 功能,它们可以更轻松地提取表单、为这些表单中的字段设置值并提交它们.
  • 谢谢,我会看一下,看看我想出了什么。
  • 这个成功了。

标签: asp.net r forms screen-scraping


【解决方案1】:

我能够使用以下代码提取与 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")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    相关资源
    最近更新 更多