主要な Java HTML パーサーの長所と短所
この記事では、いくつかの著名な Java HTML パーサーの長所と短所を詳しく掘り下げます。彼らの強みに関する情報のニーズに対処し、弱点。
共通の機能とバリエーション
ほぼすべての主要な HTML パーサーは W3C DOM API を実装しており、すぐに使用できる org.w3c.dom.Document オブジェクトを生成します。その後の処理のために。ただし、それらの機能には重要な違いが存在します。
JTidy、NekoHTML、TagSoup、および HtmlCleaner は一般に、標準的な DOM トラバーサルのソースを「整理」しようと、不完全な形式の HTML に対して寛容なアプローチを示します。
専門化されたパーサー
HtmlUnit:
HtmlUnit は、フォームの入力、要素のクリック、JavaScript の実行などのアクションを可能にし、本格的な「GUI」をレンダリングする独自の API を提供します。ウェブが少ない"
Jsoup:
Jsoup は、CSS セレクターを使用して要素を選択するための独自の API を備えており、HTML DOM ツリーのシームレスなトラバースを容易にし、データ抽出を特に効率的にします。
比較
次の点を考慮してくださいデータ抽出に JTidy と XPath を利用したコード例:
// Using JTidy and XPath Document document = new Tidy().parseDOM(new URL(url).openStream(), null); XPath xpath = XPathFactory.newInstance().newXPath(); Node question = (Node) xpath.compile("//*[@id='question']//*[contains(@class,'post-text')]//p[1]").evaluate(document, XPathConstants.NODE); System.out.println("Question: " + question.getFirstChild().getNodeValue());
これを Jsoup の簡潔な構文と比較:
// Using Jsoup Document document = Jsoup.connect(url).get(); Element question = document.select("#question .post-text p").first(); System.out.println("Question: " + question.text());
概要
標準的な DOM 操作には、JTidy や NeoHTML などの一般的なパーサーで十分です。 HtmlUnit は HTML 単体テストに最適です。ただし、効率的なデータ抽出が最優先である場合、直感的な CSS 選択と簡素化された DOM トラバーサルのおかげで、Jsoup が有力な選択肢として浮上します。
以上が私のプロジェクトに適した Java HTML パーサーは、JTidy、NekoHTML、HtmlUnit、または Jsoup のどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。