0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Java で Selenium と Jsoup でウェブブラウザ自動化とデータ抽出

Last updated at Posted at 2024-01-03

1. はじめに

ウェブ開発の世界では、ブラウザの自動化やデータの抽出は日々の業務を効率化する上で欠かせない技術です。Javaを用いたSelenium WebDriverとJsoupライブラリを組み合わせることで、ブラウザを自動操作し、必要な情報を効率的に収集することができます。この記事では、Java, Selenium, とJsoupを使用してブラウザ自動化とデータ抽出を行う基本的な方法を紹介します。

2. Seleniumとは?

Seleniumは、ブラウザ操作を自動化するための一連のツールを提供します。開発者やテスターがコードを書いてブラウザの動作を自動化できるように、WebDriverというAPIを介して様々なブラウザと対話します。これは、主にウェブアプリケーションのテスト自動化に使用されますが、データのスクレイピングや自動化されたナビゲーションのためにも使用されます。

3. Jsoupとは?

Jsoupは、JavaのHTMLパーサーライブラリで、HTMLを解析し、操作し、クリーンナップし、HTMLからデータを抽出するためのメソッドを提供します。ウェブページからのデータ抽出やHTMLドキュメントのクリーニング、様々なHTML操作に使用されます。Seleniumで取得したHTMLページを解析し、必要なデータを抽出する際に非常に便利です。

4. MavenでSeleniumとJsoupを設定する

JavaプロジェクトでSeleniumとJsoupを使用するためには、Mavenを利用して以下の依存関係をpom.xmlに追加します:

<!-- Selenium WebDriver -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.16.1</version>
</dependency>

<!-- Jsoup HTML Parser -->
<dependency>
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.16.1</version>
</dependency>

これにより、プロジェクトにSeleniumとJsoupの両方が導入され、利用準備が整います。

5. 基本的なブラウザ自動化とデータ抽出スクリプト

以下はJavaでSeleniumとJsoupを組み合わせた基本的な自動化スクリプトの例です。適切なimport文を追加し、実行時のエラーを防ぐために必要なライブラリを指定しています。

import org.jsoup.Jsoup;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;

final var options = new ChromeOptions();
options.addArguments("--headless=new");
final RemoteWebDriver driver = new ChromeDriver(options);

driver.get("https://protopedia.net/prototype/4133");

final var pageSource = driver.getPageSource();
driver.quit();

final var doc = Jsoup.parse(pageSource);
// Jsoupを使って特定の要素を抽出
final var titles = doc.select("h1").text(); 

このスクリプトは、Seleniumでブラウザを操作し指定されたページにアクセスし、ページのHTMLを取得します。その後、Jsoupを使ってHTMLを解析し、特定のデータ(この場合は<h1>タグのテキスト)を抽出します。

6. まとめ

Java で Selenium と Jsoup を組み合わせることで、ブラウザの自動化とデータ抽出が容易になります。この基本的な例を出発点として、さらに複雑な操作やデータ抽出のシナリオに挑戦してみてください。正確で効率的な自動化スクリプトの構築に向けて、今日から始めましょう。

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?