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

R语言Shiny App开发:爬取宝可梦信息遇SSL证书错误求助

解决Shiny App中read_html()的SSL证书错误问题

Hey there! 我在做爬虫和Shiny项目时也踩过这个SSL证书的坑,给你几个靠谱的解决思路:

1. 临时禁用证书检查(快速应急方案)

这个方法能快速搞定问题,但只建议在你完全信任目标网站时使用——因为禁用证书验证会让你面临中间人攻击的风险。

你可以借助httr包先发起请求并跳过证书检查,再把响应传给read_html():

library(rvest)
library(httr)

server <- function(input, output) {
  output$value <- renderPrint({
    pokemon <- input$pokemon1
    # 替换成你的实际URL拼接逻辑,比如宝可梦数据库的地址
    URLpokemon <- paste0("https://pokemondb.net/pokedex/", pokemon)
    
    # 跳过SSL证书检查获取网页内容
    response <- GET(URLpokemon, config(ssl_verifypeer = FALSE))
    html_content <- read_html(response)
    
    # 这里添加你提取宝可梦信息的代码,比如抓取种族值、属性等
  })
}

2. 更新系统证书库(长期安全方案)

SSL错误很多时候是因为R的默认证书库过时了,更新它是更安全的长期解决办法:

  • Windows用户:安装curl包后运行证书更新命令:
    install.packages("curl")
    curl::ca_bundle_update()
    
  • macOS用户:安装openssl包后自动更新SSL证书:
    install.packages("openssl")
    openssl::download_ssl_certs()
    
  • Linux用户:用系统包管理器重新安装证书库,比如Ubuntu系统:
    sudo apt-get install --reinstall ca-certificates
    

3. 确保依赖包是最新版本

旧版本的rvest或httr可能存在证书相关的bug,先更新这两个包试试:

update.packages(c("rvest", "httr"))

额外检查点

  • 确认你的URL拼接没有拼写错误,比如是不是把https写成了http(不过SSL错误一般出现在HTTPS请求场景);
  • 如果目标网站有反爬机制,偶尔也会伪装成SSL错误,不过这种情况相对少见。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:38:25