在 R 中选择多个历史日期后进行 Rvest Web 抓取

Rvest Web scraping after selecting multiple historical dates in R

我正在尝试从 HTML 网站下载数据 https://wrldc.in/GeneratorScheduleChart.html#

我一直在使用 R 包 Rvest

我在 link .

中看到了 Whosebug 中的一些示例

虽然 运行 这段代码我收到错误 Error: object 'request_POST' not found

我正在使用选择器小工具工具来获取 HTML 和 CSS 选择器。

这里我们在 'Last Update at' header 下有另一个下拉菜单,其中包含每隔 1 分钟的数据列表。

我想要的是在选择日历日期 或日期选择器后下载数据,然后获取 'last Updates at'

的所有列表的所有表

我不喜欢为此使用 Rselenium 包。

您可以在 Javascript 中为源 html 中的 Ajax 调用看到正确的端点。如果您随后在网络选项卡中找到对该端点的调用,您可以使用 httr 重新创建请求。您只需要 Content-Type header 但我还要添加 User-Agent。在 body 你传递数据。

library(httr)
library(jsonlite)

headers = c('User-Agent' = 'Mozilla/5.0', 'Content-Type' = 'application/json; charset=UTF-8')
data = '{date:"2021-7-19"}'

r <- httr::POST(url = 'https://wrldc.in/GeneratorSchedule_data.aspx/Get_GeneratorScheduleData_state_Wise',
                httr::add_headers(.headers=headers), body = data) %>% content()

df <- jsonlite::parse_json(r$d, simplifyVector = T)