RSelenium:无法从表中提取文本

时间:2016-10-21 08:48:38

标签: html r selenium web-scraping rselenium

查看this网页。我想提取文本元素'2013'。我使用RSelenium,但如果有人知道如何使用任何其他包也很好。我目前的脚本如下:

startServer()
remDr <- remoteDriver(browserName="chrome")
remDr$open(silent=T)
remDr$navigate(as.character(url))
remDr$findElement("css selector","#crosstable > table > tbody > tr:nth-child(2) > th:nth-child(2)")$getElementText()

这会出现以下错误:

Error:   Summary: NoSuchElement
Detail: An element could not be located on the page using the given search parameters.
class: org.openqa.selenium.NoSuchElementException

我注意到的第一件事是使用selectorgadget无法选择这段短文本。所以我想在源代码中查找该文本并复制其特定的选择器路径:#crosstable > table > tbody > tr:nth-child(2) > th:nth-child(2)。但是,正如错误所示,这不起作用。

我是webscraping的新手,并且几乎没有HTML知识,所以欢迎任何关于如何从表中提取文本“2013”​​的线索。

编辑 - 我发现了怎么做

startServer()
remDr <- remoteDriver(browserName="chrome")
remDr$open(silent=T)
remDr$navigate(as.character(url))
webElem <- remDr$findElement("id", "content_iframe")
remDr$switchToFrame(webElem)
webElem <- remDr$findElement("id", "passthrough")
remDr$switchToFrame(webElem)

remDr $ findElement( “xpath的”, '// * [@ ID = “交叉表”] /表/ tbody的/ TR [2] /第[2]')$用getElementText()

1 个答案:

答案 0 :(得分:2)

webElem <- remDr$findElement("id", "content_iframe")

remDr$switchToFrame(webElem)

remDr$findElement("css selector","#crosstable > table > tbody > tr:nth-child(2) > th:nth-child(2)")$getElementText()

/* perform operation */

remDr$switchToFrame(NULL)