HTML parser

Webページの扱い

Webページは HTML (HyperText Markup Language) の仕様に基づき記述されている HTML 文書 (HTML document) である。タグにより文書構造がマークアップされている。

Webページから情報を抽出する際、抽出箇所を文書構造により特定したい場合や、単にタグを除去してテキスト部分を得たい場合がある。

これらの処理は、文字列操作により実現することもできるが、 HTML文書の構造を解析して木構造を生成する HTMLパーサ を利用するのが適切である。

HTMLパーサ

jsoup
HTML Parser
Swing 付属の Parser

Swing 付属の HTMLパーサの使用例

import javax.swing.text.*;
import javax.swing.text.html.*;

Reader reader;   // 適当に生成されているものとする
EditorKit kit = new HTMLEditorKit();
Document doc = kit.createDefaultDocument();
try {
  kit.read(reader, doc, 0);
  ElementIterator it = new ElementIterator(doc);
  Element elem;
  while ((elem = it.next()) != null) {
    System.out.print(
      "Element " + elem.getName() +
      "(" + elem.getStartOffset() + "-" +
        elem.getEndOffset() + ")");
  }
} catch (Exception e) {
  e.printStackTrace();
}