Vine Linux 3.1 を使用している場合は Firefox をインストールして、それを使ってダウンロードすること。
cd ~/java unzip ~/Desktop/htmlparser1_6_20060610.zip cd htmlparser1_6/lib su install -o root -g root -m 0444 -p *.jar /usr/java/*/jre/lib/ext/ exit
/usr/java 以下の複数の Java 開発環境/実行環境が入っている場合には、 上記ではうまくいかない。担当者に相談すること。
API 仕様は htmlparser1_6 の中の docs というディレクトリの中に入っている。 ブラウザで「ファイルを開く」で開き、ブックマークしておくとよい。
class Parser の main メソッドを改変したもの。 想定と異なる文字コードを検出したときには、 その文字コードで解析し直すようにしている。
その改良例。a href と img src を抽出。
フィルタを駆使することで、かなり取り出すノードを絞り込むことができる。 パッケージ org.htmlparser.filters の説明には次の2つの例が示されている。
例: id属性を持つタグだけを取り出す
Parser parser = new Parser ("http://yadda"); parser.parse (new HasAttributeFilter ("id"));
例: リンク元が画像であるリンクのリストを作成する
NodeList list = new NodeList (); NodeFilter filter = new AndFilter ( new TagNameFilter ("A"), new HasChildFilter ( new TagNameFilter ("IMG"))); for (NodeIterator e = parser.elements (); e.hasMoreNodes (); ) e.nextNode ().collectInto (list, filter);
HTML Parser では、P, B, I, FONT など、終了タグが忘れられがちな要素に対しては階層構造をつくらない方針をとっている。これらの要素を階層構造に組み入れる方法は、FAQに載っている。
Jericho HTML Parser のページに、他の HTML Parser との比較が載っている。