たのしいRuby 第24章 HTML抽出

さて、たのしいRubyも最終章!!今回はHTML抽出です。ライブラリ使えば・・・と、思ったのですが、やはり最終章やることが高度です!

最終章の目的とは

HTMLの抽出と言うのはあくまでサンプルであって、最終章の目的は・・・。

"正規表現を使った字句解析"

つまり、lexを作ろうと言う課題なのですよ!!

字句解析が出来ると

字句解析が出来ると・・・

テキストファイルをオブジェクトに変換するための第一段階をやろうというわけです!

結構練られた課題だと思います。

HTML構文を解析してリンク抽出に挑みます。

では、リンク抽出

大体こんな流れ。

  • Struct#scanを使ってゴリゴリ字句解析をしてHTMLオブジェクトを作っていきます。
  • その後、構文解析なのですが、案外適当。HTMLからのリンク抽出なのでリンクタグとタグで囲まれたテキストを抜き出します。
  • 抜き出したオブジェクトの表示。

open-urlを使って色々なサイトのリンク抽出をしてみましたが、抜き出せないオブジェクトが多発・・・課題の残る結果でした。

ソース

今回相当未完成なのでソースは略です。本を買ってください!!

まとめと課題

  • String#scanは相当深い。
  • Structで簡易的クラスを作ることが出来る。
  • Object#dupで浅いコピーが作れる。
  • 正規表現を真面目にやらないとマズイ。
  • HTMLの仕様を調べる必要がある。

卒業

おわったぁ〜。

もっと学びたい!!もっと知りたい!!

そんな気持ちでいっぱいです。本の感想は明日書く。