【问题标题】:How do I scrape dynamic table in R with doPostBack?如何使用 doPostBack 在 R 中抓取动态表?
【发布时间】:2019-01-17 17:23:43
【问题描述】:

我希望将表格的内容从网站提取到列表或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

我不想使用rSeleniumphantomJS

提前致谢。

【问题讨论】:

  • 有什么想法吗?

标签: r rvest


【解决方案1】:

您当然可以使用 rvest,但它会复杂得多。您需要做的是在单击导出数据按钮的同时监控开发者工具中的网络标签。这将是一个 post 请求,您需要做的是复制带有 header 和表单数据的 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2021-05-23
    • 2022-01-01
    • 2021-05-31
    • 1970-01-01
    • 2022-01-12
    • 2022-01-08
    相关资源
    最近更新 更多