如何使用 doPostBack 在 R 中抓取动态 table?

How do I scrape dynamic table in R with doPostBack?

我想从网站提取 table 的内容到列表或 df 网站是:https://www.fangraphs.com/projections.aspx?pos=all&stats=bat&type=steamer&team=0&lg=all&players=0

完整 table 的内容看起来可以使用以下方式导航:

javascript:__doPostBack('ProjectionBoard1$dg1$ctl00$ctl02$ctl00$ctl05
javascript:__doPostBack('ProjectionBoard1$dg1$ctl00$ctl02$ctl00$ctl06

该列表继续到 return 行,共 83 页。我正在寻找可以为我抓取数据的 rvest 解决方案。我希望有人能给我一点逐步指导,这样我就可以从学习其中的 "how" 部分中受益。

我发现的替代 rvest 解决方案看起来是在模拟类似于此 post : 的 "export to CSV"。

我不想使用 rSeleniumphantomJS

提前致谢。

当然可以使用rvest,但是会复杂很多。您需要做的是在开发人员工具中监控网络选项卡,同时单击 导出数据 按钮。这将是一个 post 请求,您需要做的是使用 headers 和表单数据复制 post 请求。

或者您可以使用 RSelenium 在几行中解决它。

library(RSelenium)

rmDr <- rsDriver(port = 4444L)

client <- rmDr$client

url <- "https://www.fangraphs.com/projections.aspx?pos=all&stats=bat&type=steamer600&team=0&lg=all&players=0"

client$navigate(url)

export_buttom <- client$findElement(using = "css",value = "#ProjectionBoard1_cmdCSV")

export_buttom$clickElement()