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

未更新R/包及代码,RSelenium突然无法运行求助

RSelenium 脚本突发失效排查与解决方案

问题背景

我用RSelenium开发的网页抓取程序稳定运行一年,每日自动执行。12月2日突然失效,期间未对R语言、依赖包及代码做任何更新或修改。未使用Docker,本地机器和EC2实例运行均失败。已尝试更换端口、在不同机器运行、将localhost替换为具体IP,均无法解决问题。

相关代码片段

library(shiny)
library(rvest)
library(RSelenium)
library(Rfast)
library(stringr)
library(rebus)
portnumber <- sample(4000:5000,1, replace = TRUE)
portnumber <- as.integer(portnumber)
rD <- rsDriver(remoteServerAddr = "localhost", browser="firefox", port=portnumber, verbose=F)

报错截图

本地机器报错:
Error when ran on local machine

EC2实例报错:
Error when ran in EC2

可行解决方案

  • 排查Firefox与geckodriver兼容性:Firefox默认会自动更新,即使未手动操作,新版本可能与现有geckodriver不兼容。

    1. 查看当前Firefox版本:打开Firefox → 帮助 → 关于Firefox
    2. 下载与Firefox版本匹配的geckodriver,替换本地/EC2上的现有文件
    3. EC2环境需给geckodriver添加可执行权限:chmod +x /path/to/geckodriver
  • 显式指定geckodriver路径:在rsDriver中明确指定驱动路径,避免系统调用错误版本:

    rD <- rsDriver(remoteServerAddr = "localhost", browser="firefox", port=portnumber, 
                   geckodriver = "/absolute/path/to/geckodriver", verbose=F)
    
  • 切换Chrome浏览器验证:临时换用Chrome排查是否为Firefox驱动问题:

    1. 下载与本地Chrome版本匹配的chromedriver
    2. 修改代码调用Chrome:
    rD <- rsDriver(remoteServerAddr = "localhost", browser="chrome", port=portnumber, 
                   chromever = "你的Chrome版本号", verbose=F)
    
  • 检查端口与安全规则:确认本地防火墙或EC2安全组未限制4000-5000端口的通信,确保端口可正常收发数据。

  • 重置系统进程:重启本地机器或EC2实例,清理可能存在的端口占用、服务挂起等异常状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 07:05:22