我正在研究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浏览器中打开,然后我提供截至目前的用户名密码并导航到表格所在的页面,然后运行上面的代码。
答案 0 :(得分:0)
这是使用网站上下一页按钮上的clickElement实现的。 感谢。