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

Ruby中如何提取动态HTML标签文本并赋值给变量

结论

该需求完全可以实现。处理HTML内容不建议手写正则匹配,使用Ruby生态通用的HTML解析库Nokogiri即可稳定完成文本提取。

操作步骤
  • 安装Nokogiri依赖,终端执行命令:
    gem install nokogiri
    如果是基于Bundler管理依赖的项目(比如Rails项目),直接在Gemfile中添加gem 'nokogiri'后执行bundle install即可。
  • 编写解析逻辑,通过CSS选择器定位目标下拉框下的所有option标签,提取文本后过滤掉默认提示项,赋值给变量:
require 'nokogiri'

# 替换为你实际需要解析的HTML内容
target_html = <<~HTML
<select id="recentsearchs" name="searchname">
    <option value="select recent item">select recent item </option>
    <option>Apple</option>
    <option>Orange</option>
    <option>Banana</option>
</select>
HTML

doc = Nokogiri::HTML(target_html)
# 提取结果赋值给变量,最终值为 ["Apple", "Orange", "Banana"]
recent_search_list = doc.css('#recentsearchs option').map { |opt| opt.text.strip }.reject { |t| t == "select recent item" }
不推荐的方案

如果只是临时处理结构完全固定的HTML片段,也可以用正则快速匹配拿到结果,但这种方式鲁棒性极差,只要option标签新增属性、出现嵌套标签或者格式有微调就会匹配失败,禁止在生产环境使用:

# 仅适配当前给出的固定HTML结构,无容错能力
recent_search_list = target_html.scan(/<option>([A-Za-z]+)<\/option>/).flatten

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:51:21