首页 > 解决方案 > 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 格式?

标签: rjsonsslweb-scraping

解决方案


推荐阅读