Kotlin:
HTMLの解析
How to: (方法)
KotlinでHTMLをパースするのにJsoupを使います。以下は簡単なコード例です。
// Jsoupライブラリをインポート
import org.jsoup.Jsoup
fun main() {
val html = "<html><head><title>サンプル</title></head>" +
"<body><p>これはパーサーの例です。</p></body></html>"
val doc = Jsoup.parse(html)
// タイトル要素を取得
val title = doc.title()
println("タイトル: $title")
// パラグラフ要素を取得
val p = doc.select("p").first()?.text()
println("パラグラフ: $p")
}
出力:
タイトル: サンプル
パラグラフ: これはパーサーの例です。
Deep Dive (深掘り)
HTMLパースの歴史は複雑です。初期のウェブブラウザはさまざまなHTML標準に対応するためにパーサーを内蔵し始めました。今日では、JsoupのようなライブラリはHTMLとXMLの両方をパースできる強力なツールです。
代替手段としてHTMLパースには、Kotlin/JavaではHtmlCleanerやTagSoup、PythonではBeautifulSoupやlxmlがあります。
実装の詳細に関しては、Jsoupは内部でDOM(Document Object Model)を構築しており、CSSセレクターを使って要素を簡単に検索できるようにしています。
See Also (参照)
- Jsoup公式ドキュメント: https://jsoup.org/
- HTMLCleaner: http://htmlcleaner.sourceforge.net/
- TagSoup: http://home.ccil.org/~cowan/XML/tagsoup/
- BeautifulSoup: https://www.crummy.com/software/BeautifulSoup/