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

golem应用中点击按钮触发observeEvent无法渲染表格问题求助

Shiny模块无响应问题修复方案

核心问题

Shiny模块要求UI端所有输入、输出组件的id必须绑定模块命名空间(即套ns()函数),你当前代码中的textInput(id为link)、actionButton(id为pesquisar_autores)都没有做命名空间绑定,导致server端的input无法监听到按钮点击事件、也无法获取输入的链接值,这是点击无响应的根本原因。

修复后的完整代码

#' seleciona_autores UI Function
#'
#' @description A shiny Module.
#'
#' @param id,input,output,session Internal parameters for {shiny}.
#'
#' @noRd 
#'
#' @importFrom shiny NS tagList 
mod_seleciona_autores_ui <- function(id){
  ns <- NS(id)
  tagList(
    shiny::textInput(
      ns('link'), # 新增命名空间绑定
      label = '谷歌学术个人主页链接',
      value = ''
    ),
    shiny::actionButton(
      ns('pesquisar_autores'), # 新增命名空间绑定
      '查询共同作者'
    ),
    tableOutput(ns('lista_parceiros'))
  )
}
    
#' seleciona_autores Server Functions
#'
#' @noRd 
mod_seleciona_autores_server <- function(id){
  moduleServer( id, function(input, output, session){
    ns <- session$ns
    
    # 输出定义移到observeEvent外,符合Shiny最佳实践
    output$lista_parceiros <- renderTable({
      req(input$pesquisar_autores) # 等待按钮触发
      req(input$link) # 校验输入链接非空
      
      # 新增错误捕获,避免爬取失败直接导致模块崩溃
      tryCatch({
        forecasts <- rvest::read_html(input$link) %>%
          rvest::html_nodes(".gsc_a_tr") %>%
          rvest::html_nodes(".gsc_a_t") %>%
          rvest::html_element("div") %>%
          rvest::html_text()
        
        parceiros <- data.frame(table(trimws(unlist(strsplit(forecasts, ",")))))
        parceiros <- parceiros[parceiros$Var1 != '...',]
        parceiros <- parceiros[order(parceiros$Freq, decreasing = TRUE),]
        colnames(parceiros) <- c('共同作者', '合作成果数量')
        return(parceiros)
      }, error = function(e) {
        return(data.frame(提示 = "爬取失败,请检查链接有效性、网络环境或确认是否触发谷歌学术反爬限制"))
      })
    })
  })
}

额外注意事项

  • 谷歌学术有反爬机制,高频访问会触发验证码校验,此时爬取逻辑会返回错误,可根据业务需要补充验证处理逻辑
  • 调用模块时不要忘记在主UI调用mod_seleciona_autores_ui("自定义模块id"),在主server调用mod_seleciona_autores_server("自定义模块id"),两侧id必须完全一致

内容的提问来源于stack exchange,提问作者Arã Souza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:15:05