BLOGTIMES
2015/06/05

HTML をプレーンテキストに変換する (Ruby 編)

  ruby 
このエントリーをはてなブックマークに追加

先日、Python で HTML をテキストに変換しましたが、Ruby でももっとお手軽に HTML -> テキスト変換が出来るはずだと思って、改めて調べ直してみたら rgrove/sanitize を使うと簡単に実現できることが分かったので改めてメモ。

gem sanitize を使う

インストールは gem install sanitize を使えば一撃でできます。あとは Sanitize.clean () を呼ぶだけというシンプルさ。
div タグや p タグがスペースになるのが気になりましたが、これは :whitespace_elements を使えば調整できることが分かりました。

irb(main):001:0> require 'bundler' Bundler.require=> true irb(main):002:0> Bundler.require => [<Bundler::Dependency type=:runtime name="sanitize" requirements=">= 0">] irb(main):003:0> html = '<body><a href="http://example.com">linktext</a><div>divtext<br />div2gyoume</div><span>spantext</span></body>' => "<body><a href=\"http://example.com\">linktext</a><div>divtext<br />div2gyoume</div><span>spantext</span></body>" irb(main):004:0> Sanitize.clean(html, :whitespace_elements => [:p, :div] ) => "linktextdivtextdiv2gyoumespantext" irb(main):005:0> Sanitize.clean(html) => "linktext divtext div2gyoume spantext"

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7656
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン