[Gauche] HTMLから本文を抽出するスクリプト
はじめに
- zuzaza: ブログの記事本文を抽出するスクリプトをつくってみた (http://blog.zuzara.com/2006/06/06/84/)
- ブログの本文抽出にチャレンジ - Ceekz Logs (http://private.ceek.jp/archives/002039.html)
- Webページの本文抽出 (nakatani @ cybozu labs) (http://labs.cybozu.co.jp/blog/nakatani/2007/09/web_1.html)
を参考に、GaucheでHTMLから本文を抽出するスクリプトをつくってみました。
スクリプト
以下の通りです。参考にしたサイトのものよりだいぶ手抜きですが(コメントやヘッダの削除もしていません)、私が欲しいものは手に入ったので、とりあえずこれでいいやと思っています。
(define (extract-content html) (let loop ( (max-score 0) (content "") (contents (string-split html #/<\/?(?:div|td)[^>]*>/))) (define (count-punctuations s) (length (string-split s #/[、。!?]/))) (if (null? contents) content (let ((score (count-punctuations (car contents)))) (when (< max-score score) (set! content (car contents)) (set! max-score score)) (loop max-score content (cdr contents))))))