You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R爬虫遇SSL证书过期但浏览器可访问 需将HTML解析为JSON

问题1解决方案:直接让fromJSON()正常运行的方法

jsonlite::fromJSON()底层默认调用R的download.file拉取数据,你可以通过临时修改全局下载参数绕过SSL验证,无需调整原有调用逻辑:

# 临时设置全局下载参数,关闭SSL验证
options(download.file.method = "libcurl")
options(download.file.extra = "-k")

library(jsonlite)
website <- 'http://api.draftkings.com/sites/US-DK/sports/v1/sports?format=json'
# 直接调用fromJSON即可正常获取数据
res <- fromJSON(website)
# 用完可以恢复默认设置:options(download.file.extra = "")
问题2解决方案:从请求响应中提取JSON数据

你之前的操作逻辑存在错误:接口返回的是纯JSON文本,并非HTML文档,调用read_html()解析JSON内容属于类型不匹配,自然会得到乱码,不需要走HTML/XML解析流程,正确处理方式如下:

library(httr)
library(jsonlite)

website <- 'http://api.draftkings.com/sites/US-DK/sports/v1/sports?format=json'
# 发起请求时关闭SSL验证,不需要调用read_html
response <- GET(website, config = config(ssl_verifypeer = FALSE))
# 提取响应的文本内容,直接解析为JSON格式
json_data <- fromJSON(content(response, as = "text", encoding = "UTF-8"))

如果你已经生成了被错误解析的doc对象,不建议继续从该对象转换数据,直接按上述逻辑重新请求的成本更低,数据准确性也更高。

内容的提问来源于stack exchange,提问作者CoolGuyHasChillDay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:39:03