如何使用 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"。
我不想使用 rSelenium
或 phantomJS
。
提前致谢。
当然可以使用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()
我想从网站提取 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 :
我不想使用 rSelenium
或 phantomJS
。
提前致谢。
当然可以使用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()