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

如何用Rselenium提取HTML中data:[]内的数值并转为可操作列表?

提取script标签中data数组的数值(R语言方案)

步骤1:提取script标签内的纯文本

从你已经解析的doc对象中,先提取出script标签里的实际文本内容:

# 从doc对象中获取script标签的文本
script_text <- xpathSApply(doc, "//script", xmlValue)

步骤2:正则匹配并提取data数组内容

通过正则表达式定位data: [ ... ]片段,再清理并转换为数值列表:

方法一:使用stringr包(更简洁)

# 若未安装stringr先执行:install.packages("stringr")
library(stringr)

# 匹配data: [ ... ]部分
data_str <- str_extract(script_text, 'data: \\[.*?\\]')
# 移除"data: ["和"]",保留中间的数值字符串
nums_str <- str_remove_all(data_str, 'data: \\[|\\]')
# 按逗号分割,同时处理空格和末尾空值
num_list <- str_split(nums_str, ',\\s*')[[1]]
num_list <- num_list[num_list != ""]
# 转换为数值型向量(可直接按索引提取元素)
num_vector <- as.numeric(num_list)

方法二:使用Base R(无需额外包)

# 匹配data: [ ... ]片段
data_match <- regmatches(script_text, gregexpr('data: \\[.*?\\]', script_text))[[1]]
# 清理字符串,去掉无关部分
nums_str <- gsub('data: \\[|\\]', '', data_match)
# 分割字符串,过滤空元素
num_list <- strsplit(nums_str, ',\\s*')[[1]]
num_list <- num_list[nzchar(num_list)]
# 转为数值向量
num_vector <- as.numeric(num_list)

使用说明

处理完成后,num_vector就是可单独提取元素的数值向量,例如:

  • 提取第一个元素:num_vector[1](结果为3)
  • 提取第三个元素:num_vector[3](结果为73)
    你可以直接用这些数值和其他部分拼接成完整的数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:37:24