web-dev-qa-db-ja.com

JavaのHTML / XMLパーサー

どのHTMLパーサーに次の機能がありますか。

  • 速い
  • スレッドセーフ
  • 信頼性が高くバグのない
  • HTMLとXMLを解析します
  • 誤ったHTMLを処理する
  • DOM実装がある
  • HTML4、JavaScript、CSSタグをサポート
  • 比較的シンプルなオブジェクト指向API

どのパーサーが良いと思いますか?

ありがとうございました。

32
Shayan

Apache Tika が最適です。 Apacheは最近、既存のプロジェクトから多くのサブプロジェクトを抽出し、それらを公開しました。 Tikaはその1つで、以前はApache Luceneのコンポーネントでした。 Apacheのサポートと評判、そして広く使用されている親プロジェクトLuceneのため、これは非常に良い選択であるに違いありません。さらに、それはオープンソースです。

Apache Tika Webサイトからの簡単な紹介:

Apache Tika™ツールキットは、既存のパーサーライブラリを使用して、さまざまなドキュメントからメタデータと構造化テキストコンテンツを検出して抽出します。

また、サポートされている形式は次のとおりです。

HyperText Markup Language
XML and derived formats
Microsoft Office document formats
OpenDocument Format
Portable Document Format
Electronic Publication Format
Rich Text Format
Compression and packaging formats
Text formats
Audio formats
Image formats
Video formats
Java class files and archives
The mbox format
5
Shayan

チェックアウト Web Harvest 。これは、使用できるライブラリとデータ抽出ツールの両方であり、まさにあなたがやりたいことです。 XMLスクリプトファイルを作成して、必要な情報をどこから抽出するかをスクレイパーに指示します。提供されているGUIは、スクリプトをすばやくテストするのに非常に役立ちます。

プロジェクトのサンプルページ をチェックして、実行しようとしていることに適しているかどうかを確認してください。

16
Cesar

最もよく知られているのは NekoHTML および JTidy です。

NekoHTMLはXercesに基づいており、 XMLReader JavaSEインターフェースを実装する、簡単に適応可能な SAXParser を提供します。

JTidyは、HTMLコードをXMLで有効なものにフォーマットすることを目的としていますが、XMLパーサーとして非常に役立ち、必要に応じてDOMツリーを生成します。

他の選択肢については このリスト をご覧ください。

別の選択肢は、jRubyで hpricot を使用することです。

7
Valentin Rocher

Validator.nuのHTMLパーサー 間違いなく。これはHTML5解析アルゴリズムの実装であり、Geckoは独自のHTMLパーサーをこのパーサーのC++変換に置き換える過程にあります。

5
Ms2ger

HTML Cleaner はあなたが探しているものだと思います。 JTidy、TagSoup、NekoHtmlとの比較については、TheServerSideの announcement を参照してください。

1
Pascal Thivent

おそらくヘッドレスモードでMozillaを実行するようなことをしたいと思うでしょう。こちらが link です。開始するには、Googleを使用して詳細を確認してください。

1
user177800

上手:

Javaには必要な数の優れたHTMLパーサーはあまりありませんが、いくつかの代替案があります: http://Java-source.net/open-source/html-パーサー

Javascriptをサポートするものはほとんどありません。実際には、Rhinoを使用してこの部分を自分で行う必要があると思います( http://www.mozilla.org/rhino/ )。

1
Kico Lobo