我正在从网站中将表的内容提取到列表或df
中,该网站是:https://www.fangraphs.com/projections.aspx?pos=all&stats=bat&type=steamer&team=0&lg=all&players=0
整个表的内容看起来需要使用以下导航:
javascript:__doPostBack('ProjectionBoard1$dg1$ctl00$ctl02$ctl00$ctl05
javascript:__doPostBack('ProjectionBoard1$dg1$ctl00$ctl02$ctl00$ctl06
列表继续返回分散在83页中的行。我正在寻找可以为我抓取数据的rvest
解决方案。我希望有人可以给我一点逐步的指导,以便我可以从学习其中的“如何”部分中受益。
我发现的另一种rvest
解决方案似乎是在模拟“导出为CSV”,类似于本文:Scraping dynamic table in R with POST。
我不希望使用rSelenium
或phantomJS
。
先谢谢了。
答案 0 :(得分:1)
您当然可以使用rvest,但是它将更加复杂。您需要做的是,在点击导出数据按钮的同时,监视开发人员工具中的“网络”标签。这将是一个发布请求,您需要做的是复制带有标题和表单数据的发布请求。
或者您可以使用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()