使用Rselenium

时间:2016-02-23 11:25:53

标签: r web-scraping rselenium

我正在尝试从代码中的URL中抓取文本框值。我使用slector小工具选择了css。它无法捕获文本框中的内容。测试了几个其他CSS toobut没有捕获文本框值。 文本框是:建设年份 请帮忙 。以下是供参考的代码。

url = "https://www.ncspo.com/FIS/dbBldgAsset_public.aspx?BldgAssetID=8848"
values = list()
remDr$navigate(url)
page_source<-remDr$getPageSource()
a = read_html(page_source[[1]])
=        html_nodes(a,"#ctl00_mainContentPlaceholder_txtConstructionYear_iu")

values = html_text(html_main_node)
values

提前致谢

2 个答案:

答案 0 :(得分:1)

为什么选择RSelenium?它与rvest完全不同(虽然它是一个可怕的SharePoint站点,可能会在维护正确的视图状态cookie的情况下导致问题。)

library(rvest)

pg <- html_session("https://www.ncspo.com/FIS/dbBldgAsset_public.aspx?BldgAssetID=8848")

html_attr(html_nodes(pg, "input#ctl00_mainContentPlaceholder_txtConstructionYear_iu"), "value")

## [1] 1987

您应该抓取value 属性与节点文本。这也适用于你的selenium代码。

答案 1 :(得分:0)

上述答案也有效。但是,如果您只是尝试使用RSelenium。这是代码

library(RSelenium)
checkForServer()
startServer()
Sys.sleep(5)
re<-remoteDriver()
re$open()
re$navigate("https://www.ncspo.com/FIS/dbBldgAsset_public.aspx?BldgAssetID=8848")
re$findElement(using = "css selector", "#ctl00_mainContentPlaceholder_txtConstructionYear_iu")$clickElement()
text<-unlist(re$findElement(using = "css selector", "#ctl00_mainContentPlaceholder_txtConstructionYear_iu")$getElementAttribute("value"))

这有效