R - 如何从保持静态的URL中的表的多个页面获取数据?

时间:2016-05-23 10:27:02

标签: r selenium web-scraping

我正在研究R语言,我想从一个静态的URL中获取表数据。该URL的扩展名为.aspx。

当我登录受密码保护的网站时,我在第一页上有一个表格。但该表有多个页面,如1,2,依此类推。我可以从表格的第一页获取数据,但是当我点击下一页时,URL没有变化。

我想从该表的所有页面获取数据并将其写入csv,但我无法从第二页开始获取数据。我检查了网站的元素,但无法找到我需要获取的html中的确切更改。我正在使用 RSelenium 进行此网页搜索。

下面是我到目前为止编写的代码,能够从表格的第一页获取数据。

library(devtools)
library(RSelenium)
library(XML)
library(plyr)

######################

RSelenium::checkForServer()
remDr <- remoteDriver() 
startServer()
remDr$open()
site <- paste0(url) 
remDr$navigate(site)
elem <- remDr$findElement(using="id",value="ctl00_ContentBody_rgridPDPList_ctl00")
elemtxt <- elem$getElementAttribute("outerHTML")[[1]]
b <- read_html(elemtxt)
data <- b %>%
html_nodes("table") %>%.[[1]] %>%
html_table(fill=TRUE)
finaldata <- data[c(-1,-2,-3),c(-1,-16,-17,-18)]### Removes the unnecessary columns and rows.

我尝试使用readHTMLTable(url),但它对我不起作用,可能是因为该网站受密码保护。使用RSelenium,网站首先在Firefox浏览器中打开,然后我提供截至目前的用户名密码并导航到表格所在的页面,然后运行上面的代码。

如果你帮我这么做的话,我将非常感激。如果我需要提供任何其他信息,也请告诉我。

1 个答案:

答案 0 :(得分:0)

这是使用网站上下一页按钮上的clickElement实现的。 感谢。