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

RSelenium中rsDriver无法连接远程服务器问题求助

问题:RSelenium启动Chrome返回NA值的原因与解决方法

我尝试用RSelenium进行网页爬取,执行了以下R代码:

library(RSelenium)

rD <- rsDriver(browser = "chrome", port = 9515L, phantomver = NULL, extraCapabilities = list(`chromeOptions` = list(binary = "C:/Program Files/Google/Chrome/Application/chrome.exe")))

运行后得到如下输出:

checking Selenium Server versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking chromedriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking geckodriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
[1] "Connecting to remote server"
$id
[1] NA

我的chromedriver状态如图所示:
chromedriver状态

Java版本为Oracle JDK 20(从Oracle官方下载)。

请问为何会返回NA值?该如何解决此问题?


可能原因与解决办法

1. Chrome与chromedriver版本不匹配

这是最常见的触发原因:

  • 打开Chrome,在地址栏输入chrome://version/查看浏览器完整版本号
  • 下载与Chrome版本完全对应的chromedriver,替换现有驱动文件(大版本必须一致,比如Chrome是114.x,chromedriver也得是114.x系列)

2. Java版本兼容性问题

Selenium Server对Java LTS版本支持更稳定,JDK 20属于非长期支持版本,易出现兼容问题:

  • 降级到JDK 11或JDK 17(LTS版本),安装后配置好系统环境变量,确保R能识别Java路径

3. 端口占用或权限不足

  • 端口9515可能被其他程序占用,尝试更换端口,比如改为port = 9516L
  • 以管理员身份运行RStudio或R终端,避免权限不足导致驱动启动失败

4. RSelenium配置优化

  • 显式指定chromedriver版本,同时添加沙箱禁用参数,修改后的代码示例:
library(RSelenium)

rD <- rsDriver(
  browser = "chrome", 
  port = 9516L, 
  phantomver = NULL, 
  chromever = "你的Chrome对应版本号", # 示例:"114.0.5735.90"
  extraCapabilities = list(
    `chromeOptions` = list(
      binary = "C:/Program Files/Google/Chrome/Application/chrome.exe",
      args = list("--no-sandbox")
    )
  )
)
  • 若自动下载的驱动异常,可手动下载后,在rsDriver中设置chromever = NULL,再通过系统环境变量指定chromedriver路径

5. 安全软件拦截

临时关闭防火墙或杀毒软件,检查是否是它们阻止了chromedriver或Selenium Server的运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 22:03:23