HTMLパーサ
HTML文書とは何か
Webページを構成するHTML文書は、コンテンツ本文を含むテキストに一定の書式情報をつけて作成したものです (Wikipedia: HTML)。 この文書ファイルを Internet Explorer のようなWebブラウザで閲覧すると、 書式情報は目に見える体裁へと変換され、我々が日ごろ目にするWebページになります。
HTML文書からのデータ抽出
例えば、自社運営のWebサイトが静的HTML文書で構成されていて、
数千ページにのぼっている会社を考えます。
この会社では、Webサイトの更新作業を効率化したいと考えており、
コンテンツ管理システム(CMS)などのWebシステム導入を検討しています。
しかし、 膨大なHTML文書を新システムへデータ移行する問題に頭を悩ませています。
人手で数千ページものデータを移行することは多大な費用と時間が生じる上、
人為的ミスも避けられません。
また、最近ではASP型ブログなどが無料で利用できるようになっています。
しかし、データのエクスポートやバックアップに類する機能が提供されていないために、
他社サービスへの移行が困難であったり、障害に備えたバックアップができない場合があります。
HTML文書はデジタルデータであるため、コンピュータ・プログラムでも扱うことは可能です。
一般的なプログラミング言語にはテキスト処理機能や正規表現などが備わっており、
これらを用いてHTML文書からのデータ抽出が行えます。
しかし、上記の例のようにページ内の特定データを抽出したいという場合には、
HTML文書をプログラム内で効率よく扱えるHTMLパーサを用いたほうが、正確かつ効率的です。
HTMLパーサを用いた文書解析
HTMLの書式情報は、あらかじめ決められたタグによって表現されており、
その結果として文書全体に構造を与えます。
パーサ・プログラムは、この文書構造をコンピュータ・プログラムによって簡単に扱えるようにしたものです。
XML文書を扱うXMLパーサ(IT用語辞典: XMLパーサ)はよく知られていますが、本稿でこれまで述べているHTML文書についても、
多くのプログラミング言語で利用可能なパーサ実装が知られています。
ただし、XMLとHTMLでは周辺事情が大きく異なっており、
現実には想定外の構造を持つHTML文書が数多く存在しています。
この理由には、
1) もともとHTMLは、XMLほどに正確な文法を要求されていなかった、
2) WebブラウザのHTML解釈実装が高度化し、文法外の文書構造を受け入れるようになった、
などが考えられます。
いずれにしても、既存のWebブラウザと同様に、
多様な文書構造を柔軟に受け入れていかなければならなくなっており、
HTMLパーサを導入したから文書解釈が簡単になるという単純な状況ではないようです。
- HTML文書からのデータ抽出
- HTMLパーサ&ルール
- HTMLパーサ&ルールの使い方