Java API開発におけるWebスクレイピングのためのHtmlUnitの使用

WBOY
リリース: 2023-06-18 18:31:42
オリジナル
1165 人が閲覧しました

Java API 開発における Web スクレイピングに HtmlUnit を使用する

Web スクレイピングは、現代のインターネット アプリケーション設計で一般的に使用されるテクノロジであり、多くの Web サイト データ分析およびマイニングにとって重要なツールでもあります。 Java API 開発では、HtmlUnit ライブラリを使用して Web スクレイピング タスクを簡単に完了できます。

HtmlUnit は Java で書かれたインターフェースのないブラウザで、ブラウザの動作をシミュレートし、ユーザーのように Web ページにアクセスし、ページのコンテンツを取得できます。同時に、HtmlUnit は JavaScript のサポートも提供します。これにより、ページ上でスクリプトを実行し、より複雑な操作を実行できます。

この記事では、HtmlUnit をインストールして設定するところから、Web スクレイピングに HtmlUnit を使用する方法を紹介します。次に、HtmlUnit を使用して Web サイトにアクセスし、ページのコンテンツを取得する方法を示します。最後に、HtmlUnit を使用して Web アプリケーションをテストする方法を見ていきます。

HtmlUnit のインストールと構成

HtmlUnit を使用するには、まず Java プロジェクトに追加する必要があります。 HtmlUnit は Maven 統合依存関係ライブラリから取得できます。pom.xml に次の依存関係を追加するだけです:

<dependency>
    <groupId>net.sourceforge.htmlunit</groupId>
    <artifactId>htmlunit</artifactId>
    <version>2.50</version>
</dependency>
ログイン後にコピー

コードでは、HtmlUnit の関連クラスをインポートする必要があります:

import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
ログイン後にコピー

Web サイトにアクセスしてページのコンテンツを取得します

#HtmlUnit を使用すると、Web サイトに簡単にアクセスしてページのコンテンツを取得できます。次のコード スニペットは、HtmlUnit を使用して baidu.com にアクセスし、ページのタイトルを取得する方法を示しています。

try (WebClient webClient = new WebClient()) {
    HtmlPage page = webClient.getPage("http://www.baidu.com");
    String title = page.getTitleText();
    System.out.println(title);
}
ログイン後にコピー

この例では、ブラウザの動作をシミュレートする WebClient オブジェクトを作成し、 getPage() メソッドを使用して、ページの HtmlPage オブジェクトを取得します。次に、 getTitleText() メソッドを使用してページのタイトルを取得します。

ページのタイトルを取得することに加えて、ページの HTML コンテンツも取得できます。次のコード スニペットは、Baidu ホームページの HTML コンテンツを取得する方法を示しています。

try (WebClient webClient = new WebClient()) {
    HtmlPage page = webClient.getPage("http://www.baidu.com");
    String content = page.asXml();
    System.out.println(content);
}
ログイン後にコピー

この例では、asXml() メソッドを使用してページの HTML コンテンツを取得します。

JavaScript の実行

HtmlUnit は、静的なページ コンテンツを取得するだけでなく、ページ上で JavaScript コードを実行することもできます。最近のほとんどの Web サイトでは JavaScript が不可欠な部分となっており、多くの Web サイトの中核機能は JavaScript に基づいています。次のコードは、HtmlUnit を使用して単純な JavaScript スクリプトを実行する方法を示しています。

try (WebClient webClient = new WebClient()) {
    String script = "var x = 1 + 1; x;";
    Object result = webClient.executeJavaScript(script).getJavaScriptResult();
    System.out.println(result);
}
ログイン後にコピー

この例では、1 1 の結果を変数 x に代入し、x を返す単純な JavaScript スクリプトを作成します。このスクリプトを実行するにはexecuteJavaScript()メソッドを使用し、スクリプトの実行結果を取得するにはgetJavaScriptResult()メソッドを使用しました。

Web アプリケーションのテスト

最後に、HtmlUnit を使用して Web アプリケーションをテストする方法を見てみましょう。 Web アプリケーションをテストするときは、フォームの入力やボタンのクリックなどのユーザーの動作をシミュレートする必要があります。次のコードは、HtmlUnit を使用して単純なログイン ページをテストする方法を示しています。

try (WebClient webClient = new WebClient()) {
    HtmlPage page = webClient.getPage("http://localhost:8080/login");
    HtmlForm form = page.getForms().get(0);
    form.getInputByName("username").setValueAttribute("admin");
    form.getInputByName("password").setValueAttribute("password");
    HtmlButton submitButton = form.getButtonByName("submit");
    HtmlPage resultPage = submitButton.click();
    assertEquals("http://localhost:8080/home", resultPage.getUrl().toString());
}
ログイン後にコピー
この例では、まずログイン ページを開き、次にフォーム要素を取得してユーザー名とパスワードを入力します。次に、送信ボタンを取得してクリックします。最後に、ページの URL が意図したターゲット ページを指しているかどうかを確認します。

結論

HtmlUnit は、Web スクレイピングとテストを簡単にする強力なツールです。 HtmlUnit を使用すると、Web サイトのコンテンツをすばやく取得し、JavaScript スクリプトを実行し、Web アプリケーションをテストできます。 HtmlUnit の基本的な使い方を理解することは、理論的な知識の蓄積であるだけでなく、実際のプログラミングにおいても非常に有用で必要なスキルです。

以上がJava API開発におけるWebスクレイピングのためのHtmlUnitの使用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート