ruby - 如何让 Nokogiri inside_HTML 对象忽略/删除转义序列

标签 ruby nokogiri open-uri

目前,我正在尝试使用 nokogiri 获取页面上元素的内部 HTML。然而,我不仅获得了元素的文本,还获得了它的转义序列。有什么方法可以用 nokogiri 抑制或删除它们吗?

require 'nokogiri'
require 'open-uri'

page = Nokogiri::HTML(open("http://the.page.url.com"))

page.at_css("td[custom-attribute='foo']").parent.css('td').css('a').inner_html

这返回=> “\r\n\t\t\t\t\t\t\t\tTheActuallyInnerContentThatIWant\r\n\t”

最有效、最直接的 nokogiri(或 ruby​​)方法是什么?

最佳答案

page.at_css("td[custom-attribute='foo']")
    .parent
    .css('td')
    .css('a')
    .text               # since you need a text, not inner_html
    .strip              # this will strip a result

String#strip .

旁注:css('td a')可能比css('td').css('a')更有效>.

关于ruby - 如何让 Nokogiri inside_HTML 对象忽略/删除转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36430212/

相关文章:

ruby-on-rails - Ruby中类定义中的方法类是什么意思?

Ruby:Module、Mixins 和 Blocks 令人困惑?

ruby - 使用 Mechanize 和 Ruby 解析帧中的数据

带有动态网站的 Ruby Open-URI

Ruby Madness 使用 Nokogiri、Mechanize 和 OpenUri 下载相同的文件以获取不同的信息

ruby - `require` 和 `gem` 有什么区别

ruby - 使用 RSpec 测试 @current_user 方法

ruby - 如何使用 Nokogiri 阅读器界面告知节点的行号?

ruby - 在 nokogiri 中解析没 Root过的多个标签

ruby - open-uri 从以 iso-8859 编码的网页返回 ASCII-8BIT