ruby-on-rails - 使用 Mechanize/Nokogiri 提取文本

标签 ruby-on-rails ruby nokogiri mechanize

是否有一种明智的方法来提取 Mechanize 解析的 HTML 文档中的每一段文本,以便(例如):

<p>Here is <b>some</b> text<p>

分为三个要素:
Here is
some
text

?我的预感是有一种使用递归 CSS 搜索和/或 #flatten 的简单技术,但我还没有弄清楚。

最佳答案

借用“Nokogiri recursively get all children”中的一个答案:

result = []
doc.traverse { |node| result << node.text if node.text? }

那应该给你数组 ["Here is ", "some", " text"] .

Getting Mugged by Nokogiri” 讨论 traverse .

关于ruby-on-rails - 使用 Mechanize/Nokogiri 提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12001992/

相关文章:

javascript - Ruby on Rails 不加载 Javascript

Ruby/RMagick 旋转和组合图像

ruby - 如何使用 Capybara/Ruby 测试与页面上相同正则表达式匹配的多个字符串实例

ruby-on-rails - XPath 或 CSS 解析速度更快(对于 HTML 文件上的 Nokogiri)?

ruby-on-rails - 在优胜美地安装 Nokogiri

mysql - 从数据库导入/导出数据同时绕过 Active Record 验证的最佳方法

ruby-on-rails - 在 ActiveRecord 中使用 habtm 进行双重连接

ruby-on-rails - Heroku rake 迁移

ruby-on-rails - Rails 4 部分与集合

ruby-on-rails - 为什么 Nokogiri 会给我多个结果?