r - 在 R 中选择多个历史日期后,Rvest Web 抓取
问题描述
我正在尝试从 HTML 网站https://wrldc.in/GeneratorScheduleChart.html#下载数据
我一直在使用 R 包 Rvest
我从链接request_POST看到了 StackOverflow 中的一些示例。
运行此代码时,我收到错误消息
Error: object 'request_POST' not found
我正在使用选择器小工具工具来获取 HTML 和 CSS 选择器。
在这里,我们在“上次更新时间”标题下有另一个下拉菜单,其中包含数据列表 @ 1 分钟间隔。
我想要的是在选择日历日期或日期选择器后下载数据,然后获取所有“最后更新时间”列表的所有表格
我不喜欢为此使用 Rselenium 包。
解决方案
您可以在 Javascript 中为源 html 中的 Ajax 调用指定正确的端点。如果您随后在网络选项卡中找到对该端点的调用,则可以使用 httr 重新创建请求。您只需要 Content-Type 标头,但我还要添加 User-Agent。在正文中,您传递数据。
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)
推荐阅读
- amazon-web-services - 通过 AWS CodeBuild 应用时无法在 config-map 中获取 aws-iam-authenticator
- ruby-on-rails - Rails PostgreSQL jsonb GROUP BY 查询内部动态键
- jquery - 无法将引导程序加载到整页 js
- ios - 试图将指针投射到 ARC 下的指针
- swift - Index out of range custom cell TableViewController
- mysql - mySQL 事务不能正常工作,而是单独考虑
- svg - SVG 图像在某些屏幕中无法正确呈现
- c# - 为什么我不能使用 lambda 表达式从集合中选择特定列?
- javascript - Ajax 响应数据分别获取
- line-breaks - “如何修复 MathJax 换行?”