Jsoup-quick-guide
jsoup-概要
jsoupは、HTMLベースのコンテンツを操作するためのJavaベースのライブラリです。 DOM、CSS、およびjqueryのようなメソッドを使用して、データを抽出および操作するための非常に便利なAPIを提供します。 WHATWG HTML5仕様を実装し、最新のブラウザーと同じDOMにHTMLを解析します。
jsoupライブラリは、WHATWG HTML5仕様を実装し、HTMLコンテンツを最新のブラウザーごとに同じDOMに解析します。
jsonpライブラリは次の機能を提供します。
- 複数読み取りサポート-URL、ファイル、または文字列を使用してHTMLを読み取り、解析します。
- * CSSセレクタ*-DOMトラバーサルまたはCSSセレクタを使用して、データを検索および抽出できます。
- DOM Manipulation -HTML要素、属性、およびテキストを操作できます。
- * XSS攻撃を防ぐ*-XSS攻撃を防ぐために、指定された安全なホワイトリストに対してユーザーが送信したコンテンツをクリーンアップできます。
- Tidy -整然としたHTMLを出力します。
- 無効なデータを処理します-jsoupは、閉じられていないタグ、暗黙的なタグを処理でき、ドキュメント構造を確実に作成できます。
jsoup-環境設定
ローカル環境のセットアップ
JUnitはJavaのフレームワークなので、最初の要件はJDKをマシンにインストールすることです。
システム要件
JDK | 1.5 or above. |
Memory | No minimum requirement. |
Disk Space | No minimum requirement. |
Operating System | No minimum requirement. |
ステップ1:マシンでのJavaインストールの検証
まず、コンソールを開き、作業しているオペレーティングシステムに基づいてjavaコマンドを実行します。
OS | Task | Command |
---|---|---|
Windows | Open Command Console | c:\> java -version |
Linux | Open Command Terminal | $ java -version |
Mac | Open Terminal | machine:< joseph$ java -version |
すべてのオペレーティングシステムの出力を確認しましょう-
OS | Output |
---|---|
Windows |
java version "1.6.0_21" Java(TM)SEランタイム環境(ビルド1.6.0_21-b07) Java HotSpot(TM)Client VM(ビルド17.0-b17、混合モード、共有) |
Linux |
java version "1.6.0_21" Java(TM)SEランタイム環境(ビルド1.6.0_21-b07) Java HotSpot(TM)Client VM(ビルド17.0-b17、混合モード、共有) |
Mac |
java version "1.6.0_21" Java(TM)SEランタイム環境(ビルド1.6.0_21-b07) Java HotSpot(TM)64ビットサーバーVM(ビルド17.0-b17、混合モード、共有) |
システムにJavaがインストールされていない場合は、次のリンクからJavaソフトウェア開発キット(SDK)をダウンロードしてください。https://www.oracle.com/technetwork/java/javase/downloads/indexl [https://www .oracle.com]。 このチュートリアルのインストールバージョンとしてJava 1.6.0_21を想定しています。
ステップ2:JAVA環境を設定する
OS | Output |
---|---|
Windows | Set the environment variable JAVA_HOME to C:\Program Files\Java\jdk1.6.0_21 |
Linux | export JAVA_HOME =/usr/local/java-current |
Mac | export JAVA_HOME =/Library/Java/Home |
Javaコンパイラの場所をシステムパスに追加します。
OS | Output |
---|---|
Windows | Append the string C:\Program Files\Java\jdk1.6.0_21\bin *at the end of the system variable, Path*. |
Linux | export PATH = $PATH:$JAVA_HOME/bin/ |
Mac | not required |
上記の説明に従って、コマンド java -version を使用してJavaのインストールを確認します。
ステップ3:jsoupアーカイブをダウンロードする
Maven Repositoryからjsoup jarファイルの最新バージョンをダウンロードします。 このチュートリアルを書いている時点で、jsoup-1.8.3.jarをダウンロードし、C:\> jsoupフォルダーにコピーしました。
OS | Archive name |
---|---|
Windows | jsoup-1.8.3.jar |
Linux | jsoup-1.8.3.jar |
Mac | jsoup-1.8.3.jar |
ステップ4:jsoup環境を設定する
Sr.No | OS & Description |
---|---|
1 |
Windows 環境変数JSOUP_HOMEをC:\ JSOUPに設定します |
2 |
Linux export JSOUP_HOME =/usr/local/JSOUP |
3 |
Mac export JSOUP_HOME =/Library/JSOUP |
ステップ5:CLASSPATH変数を設定する
JSOUP jarの場所を指すように CLASSPATH 環境変数を設定します。
Sr.No | OS & Description |
---|---|
1 |
Windows 環境変数CLASSPATHを%CLASSPATH%;%JSOUP_HOME%\ jsoup-1.8.3.jar;。;に設定します。 |
2 |
Linux export CLASSPATH = $ CLASSPATH:$ JSOUP_HOME/jsoup-1.8.3.jar :. |
3 |
Mac export CLASSPATH = $ CLASSPATH:$ JSOUP_HOME/jsoup-1.8.3.jar :. |
jsoup-文字列の解析
次の例では、HTML文字列を解析してDocumentオブジェクトを作成する方法を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
説明
parse(String html)メソッドは、入力HTMLを新しいドキュメントに解析します。 このドキュメントオブジェクトを使用して、html domの詳細を走査および取得できます。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-ボディの解析
次の例では、HTML断片化文字列をHTMLボディとしてElementオブジェクトに解析する方法を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTMLフラグメント文字列。
- body -文書のbody要素の要素の子を表し、document.getElementsByTag( "body")と同等です。
説明
parseBodyFragment(String html)メソッドは、入力HTMLを新しいドキュメントに解析します。 このドキュメントオブジェクトを使用して、html bodyフラグメントの詳細を走査および取得できます。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-URLからの読み込み
次の例では、URLを使用してWebからHTMLを取得し、そのデータを見つけます。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -URLに接続してHTML文字列を取得するメインクラス。
- url -ロードするHTMLページのURL。
説明
connect(url)メソッドはurlへの接続を作成し、get()メソッドは要求されたurlのhtmlを返します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-ファイルからの読み込み
次の例では、ファイルを使用してディスクからHTMLを取得し、そのデータを検索する方法を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -URLに接続してHTML文字列を取得するメインクラス。
- url -ロードするHTMLページのURL。
説明
connect(url)メソッドはurlへの接続を作成し、get()メソッドは要求されたurlのhtmlを返します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
テスト
C:\ jsoupフォルダに次のテストファイルを作成します。
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-DOMメソッドの使用
次の例は、HTML文字列をDocumentオブジェクトに解析した後のメソッドのようなDOMの使用例を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
- sampleDiv -要素オブジェクトは、ID「sampleDiv」で識別されるhtmlノード要素を表します。
- リンク-要素オブジェクトは、タグ「a」で識別される複数のノード要素を表します。
説明
parse(String html)メソッドは、入力HTMLを新しいドキュメントに解析します。 このドキュメントオブジェクトを使用して、html domの詳細を走査および取得できます。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-セレクター構文の使用
次の例では、HTML文字列をDocumentオブジェクトに解析した後のセレクターメソッドの使用方法を示します。 jsoupは、CSSセレクターに似たセレクターをサポートします。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
- sampleDiv -要素オブジェクトは、ID「sampleDiv」で識別されるhtmlノード要素を表します。
- リンク-要素オブジェクトは、タグ「a」で識別される複数のノード要素を表します。
説明
document.select(expression)メソッドは、指定されたCSSセレクター式を解析して、html dom要素を選択します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-属性の抽出
次の例では、HTML文字列をDocumentオブジェクトに解析した後、dom要素の属性を取得するメソッドの使用方法を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
- link -要素オブジェクトは、アンカータグを表すhtmlノード要素を表します。
- * link.attr()*-attr(attribute)メソッドは、要素の属性を取得します。
説明
要素オブジェクトは、dom要素を表し、dom要素の属性を取得するためのさまざまなメソッドを提供します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-テキストの抽出
次の例では、HTML文字列をDocumentオブジェクトに解析した後にテキストを取得するメソッドの使用方法を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
- link -要素オブジェクトは、アンカータグを表すhtmlノード要素を表します。
- * link.text()*-text()メソッドは、要素のテキストを取得します。
説明
Elementオブジェクトは、dom要素を表し、dom要素のテキストを取得するためのさまざまなメソッドを提供します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-HTMLを抽出する
次の例では、メソッドを使用して、HTML文字列をDocumentオブジェクトに解析した後、内部htmlおよび外部htmlを取得する方法を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
- link -要素オブジェクトは、アンカータグを表すhtmlノード要素を表します。
- * link.outerHtml()*-outerHtml()メソッドは、要素の完全なhtmlを取得します。
- * link()*-html()メソッドは、要素innerhtmlを取得します。
説明
Elementオブジェクトは、dom要素を表し、dom要素のhtmlを取得するためのさまざまなメソッドを提供します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-URLの操作
次の例では、htmlページに存在する相対URLと絶対URLを提供できるメソッドを紹介します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -URLに接続してhtmlコンテンツを取得するメインクラス。
- link -要素オブジェクトは、アンカータグを表すhtmlノード要素を表します。
- * link.attr( "href")*-アンカータグに存在するhrefの値を提供します。 それは相対的でも絶対的でもよい。
- * link.attr( "abs:href")*-ドキュメントのベースURIに対して解決した後、絶対URLを提供します。
- * link.absUrl( "href")*-ドキュメントのベースURIに対して解決した後、絶対URLを提供します。
説明
要素オブジェクトは要素を表し、htmlページに存在する相対URLと絶対URLを取得するメソッドを提供します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-属性を設定する
次の例では、HTML文字列をDocumentオブジェクトに解析した後、dom要素の属性を設定するメソッドの使用、一括更新、クラスメソッドの追加/削除を紹介します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
- link -要素オブジェクトは、アンカータグを表すhtmlノード要素を表します。
- * link.attr()*-attr(attribute、value)メソッドは、要素の属性に対応する値を設定します。
- * link.addClass()*-addClass(class)メソッドは、クラス属性の下にクラスを追加します。
- * link.removeClass()*-removeClass(class)メソッドは、class属性の下のクラスを削除します。
説明
要素オブジェクトは、dom要素を表し、dom要素の属性を取得するためのさまざまなメソッドを提供します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-HTMLを設定する
次の例では、HTML文字列をDocumentオブジェクトに解析した後、dom要素にhtmlを設定、追加、または追加するメソッドの使用方法を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
- div -要素オブジェクトは、アンカータグを表すhtmlノード要素を表します。
- * divl()*-html(content)メソッドは、要素の外側のhtmlを対応する値に置き換えます。
- * div.prepend()*-prepend(content)メソッドは、外側のhtmlの前にコンテンツを追加します。
- * div.append()*-append(content)メソッドは、外側のhtmlの後にコンテンツを追加します。
説明
Elementオブジェクトはdom要素を表し、htmlをdom要素に設定、追加、追加するためのさまざまなメソッドを提供します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-テキストコンテンツの設定
次の例では、HTML文字列をDocumentオブジェクトに解析した後、dom要素にテキストを設定、追加、または追加するメソッドの使用方法を示します。
構文
どこで
- document -ドキュメントオブジェクトはHTML DOMを表します。
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -HTML文字列。
- div -要素オブジェクトは、アンカータグを表すhtmlノード要素を表します。
- * div.text()*-text(content)メソッドは、要素のコンテンツを対応する値に置き換えます。
- * div.prepend()*-prepend(content)メソッドは、外側のhtmlの前にコンテンツを追加します。
- * div.append()*-append(content)メソッドは、外側のhtmlの後にコンテンツを追加します。
説明
Elementオブジェクトはdom要素を表し、htmlをdom要素に設定、追加、追加するためのさまざまなメソッドを提供します。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。
jsoup-HTMLのサニタイズ
次の例では、XSS攻撃またはクロスサイトスクリプティング攻撃の防止を示します。
構文
どこで
- Jsoup -指定されたHTML文字列を解析するメインクラス。
- html -初期HTML文字列。
- safeHtml -クリーンなHTML。
- ホワイトリスト-htmlを保護するためのデフォルト設定を提供するオブジェクト。
- * clean()*-ホワイトリストを使用してHTMLをクリーンアップします。
説明
Jsoupオブジェクトは、ホワイトリスト構成を使用してHTMLをサニタイズします。
例
たとえばC:/> jsoupで選択したエディターを使用して、次のJavaプログラムを作成します。
JsoupTester.java
結果を検証する
次のように javac コンパイラを使用してクラスをコンパイルします。
次に、JsoupTesterを実行して結果を確認します。
結果をご覧ください。