在 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)
我正在尝试从 HTML 网站下载数据 https://wrldc.in/GeneratorScheduleChart.html#
我一直在使用 R 包 Rvest
我在 link
虽然 运行 这段代码我收到错误
Error: object 'request_POST' not found
我正在使用选择器小工具工具来获取 HTML 和 CSS 选择器。
这里我们在 'Last Update at' header
我想要的是在选择日历日期
我不喜欢为此使用 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)