ウェブサイトやブログ記事中の本文を抽出するgem
移転しました →
大元はこちらで、
Webページの本文抽出 (nakatani @ cybozu labs)
Ruby1.9対応され、gemになったものがこちら。
Bundlerを使ってリポジトリ指定でインストールできます。
gem 'extractcontent', :git => 'https://github.com/mono0x/extractcontent.git'☄
使い方
html = open(url).read
body, title = ExtractContent.analyse(html)
これだけでタイトルと本文を持ってきてくれます。精度も悪くなさそう。
HTMLタグを残したい
純粋に文章のみを残すという作りになっているため、抽出された本文からはHTMLタグがなくなっています。画像も無くなってしまいます。
少し話がそれますが、この本文抽出の機能を使って、「あとで読む」つもりの記事の本文を1ファイルのHTMLにまとめて、それをPDFやepubにしてKindleで読むというハックをやりたいなと思っています。
そのためには本文はHTMLのままでなければいけません。見出しや画像、箇条書きなどはしっかり残っていて欲しいのです。そういうわけで、この部分に少し手を入れます。
extractcontent/lib/extractcontent.rb at master · mono0x/extractcontent
def self.analyse(html, opt=nil) # ... # 変更前 [strip_tags(body[0], dom_separator), title] # 変更後 [body[0], title] end
タグを除去するメソッドを呼ばなければいいわけですね。
これで本文HTMLを抽出する準備ができました。スクリプトはまだ途中です。