【问题标题】:Method to parse HTML document in Ruby?在 Ruby 中解析 HTML 文档的方法?
【发布时间】:2011-02-03 00:54:04
【问题描述】:

像 PHP 中的 DOMDocument 类一样,RUBY 中是否有任何类(即核心 RUBY)来解析和获取 HTML 文档中的节点元素值。

【问题讨论】:

    标签: ruby html-parser


    【解决方案1】:

    目前还没有内置的 HTML 解析器,但有一些非常好的解析器可用,尤其是 Nokogiri

    Meta-answer:对于此类常见需求,我建议您查看Ruby Toolbox 网站。你会注意到 Nokogiri 是HTML parsers 的首选

    【讨论】:

      【解决方案2】:

      您应该查看hpricot。它非常好。它不是“核心”红宝石,而是一种常用的宝石。

      【讨论】:

      • Hpricot 很遗憾已经不在了。 Nokogiri 现在是首选解决方案。
      【解决方案3】:

      您也可以试试 Yorick Peterse 的 Oga

      它是一个用 Ruby 编写的 XML/HTML 解析器,不需要 libxml 等系统库。你可以在这里找到它。 https://github.com/YorickPeterse/oga

      【讨论】:

        【解决方案4】:

        Ruby Cheerio - Ruby 中的 jQuery 样式 HTML 解析器。用于爬虫的 Nokogiri 的最简化版本。这是最受欢迎的 NodeJS 包 cheerio 的 ruby​​ 版本。

        Follow the link for a simple crawler example.

        gem 安装 ruby​​-cheerio

        require 'ruby-cheerio'
        
        jQuery = RubyCheerio.new("<html><body><h1 class='one'>h1_1</h1><h1>h1_2</h1></body></html>")
        
        jQuery.find('h1').each do |head_one|
            p head_one.text
        end
        
        # getting attribute values like jQuery.
        p jQuery.find('h1.one')[0].prop('h1','class')
        
        # function chaining similar to jQuery.
        p jQuery.find('body').find('h1').first.text
        

        【讨论】:

        • 非常好的方法!不错的推荐!谢谢@dineshsprabu。
        • 感谢费尔南多·科什
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-18
        • 2012-04-27
        • 2014-03-05
        • 2012-12-04
        • 1970-01-01
        相关资源
        最近更新 更多