r - R webscraping“SSL证书问题:证书已过期”但在浏览器中有效。需要将 HTML 解析为 JSON
问题描述
我已经为我的问题提出了部分解决方案,但仍然需要帮助才能完成。
我的问题是我无法再使用 R 从网站获取 JSON,但我仍然可以通过浏览器访问它:
library(rvest)
library(httr)
library(jsonlite)
library(dplyr)
website <- 'http://api.draftkings.com/sites/US-DK/sports/v1/sports?format=json'
fromJSON(website)
现在给了我:
Error in open.connection(con, "rb") : SSL certificate problem: certificate has expired
但我仍然可以在 Chrome 上访问该网站。
理想情况下,我想找到一种方法来使用它fromJSON()
我不完全明白是什么导致了这个错误,所以我尝试了一堆不同的解决方案。我发现我至少可以使用这个来阅读 html:
website <- 'http://api.draftkings.com/sites/US-DK/sports/v1/sports?format=json'
doc <- webpage %>%
httr::GET(config = httr::config(ssl_verifypeer = FALSE)) %>%
read_html()
但是,从这里我被困住了。我正在努力将文档解析为我需要的 JSON。我已经尝试过类似的事情,doc %>% xmlParse() %>% xmlToList() %>% toJSON() %>% fromJSON()
但结果却是胡言乱语。
所以我的问题归结为:1)有没有办法解决 SSL 证书问题,以便我可以fromJSON()
再次直接使用。2)如果没有,我如何清理 html 文档以使其成为可用的 JSON 格式?
解决方案
推荐阅读
- r - 从工作区文件恢复以前的 R 代码
- c++ - 我应该使用 2 个 VBO 进行实例化吗?
- mathjax - 如何使用 Arithmatex 和 MathJax 获取 MkDocs 以将 \\[ ... \\] 识别为显示数学分隔符?
- python - 为什么单击功能在页面上不起作用,但在控制台上起作用?
- python - 为什么会说“TypeError:'Label' object is not callable”?
- node.js - 如何在 shell 中运行此命令?
- symfony - Symfony 5.3 用户通过用户名或电子邮件登录
- javascript - 在 PayPal 交易中访问 Django 用户名
- android-studio - 如何删除菜单工具栏中的顶部和底部边距?
- godot - 合并两个相同的 TileMap