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

使用RSelenium提取JS网站MRC地区名遇本地连接错误求解决

解决RSelenium连接错误并批量提取MRC标识与地区名称

一、修复RSelenium连接失败问题

如果坚持使用RSelenium,按以下步骤排查:

  • 检查端口占用:
    4545端口可能被其他程序占用,先验证:

    • Windows:运行netstat -ano | findstr :4545
    • macOS/Linux:运行lsof -i :4545
      若占用,更换端口重新初始化:
    rD <- rsDriver(browser="chrome", port=4546L, chromever = NULL)
    
  • 手动指定ChromeDriver版本:
    自动版本检测可能失效,先查看Chrome浏览器版本(设置→关于Chrome),然后匹配指定chromever参数:

    # 示例:Chrome版本为114.0.5735.90时
    rD <- rsDriver(browser="chrome", port=4545L, chromever = "114.0.5735.90")
    
  • 关闭防火墙/代理:
    本地防火墙或代理可能拦截Selenium的本地连接,暂时关闭后重试,或把R加入防火墙允许列表。

  • 切换至Firefox浏览器:
    若Chrome配置始终有问题,尝试改用Firefox:

    rD <- rsDriver(browser="firefox", port=4545L)
    

二、更高效的批量提取方案(无需RSelenium)

通过分析网站的网络请求,发现可直接调用官方API获取所有MRC数据,无需逐个加载页面,效率更高:

library(httr)
library(jsonlite)
library(dplyr)

# 请求API获取所有MRC地区信息
response <- GET("https://portraits.ouranos.ca/api/regions?type=mrc&lang=fr")
mrc_raw_data <- fromJSON(content(response, "text"))

# 整理为目标格式的data.frame
mrc_result <- mrc_raw_data %>%
  mutate(mrc_id = paste0("mrc", sprintf("%03d", id))) %>%  # 生成mrcXXX格式的标识
  select(mrc_id, name) %>%  # 保留需要的列
  arrange(mrc_id)  # 按标识排序

# 查看前6条结果
head(mrc_result)

该方法直接拿到所有104个MRC的标识与对应名称,完全规避了RSelenium的配置问题,且运行速度远超浏览器渲染方案。

内容的提问来源于stack exchange,提问作者M. Beausoleil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:33:14