1. 製品
  2.   編集者
  3.   Java
  4.   jsoup
 
  

jsoup: Java用HTMLパーサー

jQueryのような簡潔さでJavaでHTMLをスクレイプ、クリーンアップ、操作

jsoupとは?

jsoupは実世界のHTMLを扱うために設計された軽量かつ強力なJavaライブラリです。URL、ファイル、文字列からHTMLを解析し、DOMトラバーサル、CSSセレクター、最新のHTML5メソッドを使用してデータを抽出・操作するための直感的なAPIを提供します。ウェブスクレイピング、データ抽出、HTMLサニタイズに最適で、ブラウザのように不正なマークアップも適切に処理します。

正規表現ベースのアプローチとは異なり、jsoupはjQueryにインスパイアされたメソッドでクリーンなオブジェクトモデルを提供し、フォーム送信、属性変更、テキスト抽出などのタスクを簡素化します。依存関係がなくMITライセンスのため、信頼性の高いHTML処理を必要とするJava開発者に人気です。

jsoupの主な利点:

  • 実世界のHTML処理: ブラウザのように乱れたHTMLを解析
  • jQuery風の構文: 慣れ親しんだCSSセレクター(例: doc.select("div.content")
  • スクレイピングに適した設計: リダイレクト追跡、クッキー処理、フォーム送信
  • クロスプラットフォーム: ネイティブ依存なしの純粋なJava
  • セキュリティ: 組み込みXSS防止とHTMLサニタイズ機能

データマイニング、ウェブ自動化、コンテンツ分析に最適です。

GitHub

GitHub の統計

名前:
言語:
出演者:
フォーク:
ライセンス:
リポジトリの最終更新日時

jsoupを選ぶ理由

  • シンプルさ: CSSセレクターをサポートした直感的なAPI
  • 信頼性: 2009年から活発にメンテナンス
  • パフォーマンス: ストリーミングや大規模ドキュメント向けに最適化
  • 柔軟性: フラグメント、ファイル、ライブURLで動作
  • クリーンな出力: HTMLの整形と再フォーマット

インストール

MavenまたはGradleでjsoupを追加:

Maven



    org.jsoup
    jsoup
    1.17.2


Gradle


implementation 'org.jsoup:jsoup:1.17.2'

システム要件: Java 8+

コード例

jsoupの実用的な使用例:

jsoupによるHTML解析

例1: 文字列からドキュメントを解析

Java文字列内のHTMLを解析して内容を取得または変更する場合、jsoupではわずか数行のコードで実現できます。

parse(String html, String baseUri)メソッドは入力HTMLを新しいDocumentに変換します。baseUriパラメーターは相対URLを絶対URLに解決するのに役立ち、ドキュメントが取得されたURLに対応している必要があります。これが関連しない場合、またはHTMLに<base>要素が含まれている場合は、より単純なparse(String html)メソッドを使用できます。

例2: CSSセレクターで要素を検索

CSSセレクターを使用して要素を検索または操作する場合、HTML文字列を直接解析して操作します:

例3: 要素のHTMLを変更

要素のHTMLを変更する必要がある場合、以下のサンプルコードに示すようにElementのHTMLセッターメソッドを使用します。

高度な機能

jsoupはプロフェッショナルなHTML処理をサポート:

  • フォーム処理: POSTデータを送信:

    フォーム送信

    
        Connection.Response res = Jsoup.connect("https://example.com/login")
            .data("username", "user", "password", "pass")
            .method(Connection.Method.POST)
            .execute();
        Document dashboard = res.parse();
        
    
  • プロキシサポート: プロキシ経由でスクレイピング:

    プロキシ設定

    
        Document doc = Jsoup.connect("https://target.com")
            .proxy("127.0.0.1", 8080)
            .get();
        
    
  • DOM操作: HTML構造を変更:

    DOM変更

    
        doc.select("div.ads").remove(); // すべての広告を削除
        doc.select("h1").attr("class", "header"); // CSSクラスを追加
        
    

jsoup vs HTMLUnit

主な違い:

  • 焦点: jsoupは静的HTMLを解析、HTMLUnitはブラウザをシミュレート(JavaScript実行)
  • 速度: jsoupは純粋なHTML解析でより高速
  • APIスタイル: jsoupはCSSセレクター、HTMLUnitはSeleniumを模倣
  • 使用事例: jsoupはスクレイピング、HTMLUnitは動的ページのテスト
  • 依存関係: jsoupはなし、HTMLUnitは追加ライブラリが必要

結論

jsoupはJava開発者向けの究極のHTMLツールキットです。以下に最適:

  • ウェブスクレイピング: あらゆるウェブサイトからデータを抽出
  • データクリーニング: HTMLをサニタイズして正規化
  • コンテンツ分析: RSSフィードやウェブアーカイブの解析
  • テスト: アプリ内のHTML構造を検証

MITライセンスと直感的なAPIにより、JavaベースのHTML処理における第一選択肢です。

類似製品

 日本語