ExtractContent を使えばいい。
ただ、上の記事の ExtractContent は Ruby1.9 以上では動かなかった。正規表現エンジンが変わったからね…。
無ければ自分で修正することを前提に、GitHub で探したら、案の定 1.9 対応版を発見した。
試しにこれを使ってみよう。
Gemfile に
gem "extractcontent", github: "mono0x/extractcontent"
を追加し、bundle でインストール。
使い方は簡単で、本文を抽出したい HTML を ExtractContent.analyse メソッドに渡すだけ。タイトルと本文が返ってきた。
# coding: utf-8 require "open-uri" require "bundler/setup" require "extractcontent" URL = "http://tnakamura.hatenablog.com/entry/2013/06/29/204726" open(URL) do |io| html = io.read body, title = ExtractContent.analyse(html) puts title puts body end