Java Selenium Web Driver を利用し Web のサイトの情報を取得する No.23

自己投資としてチャレンジしている内容を Blog で公開しています。今回は Web のサイトの情報を取得する、スクレイピング方法について紹介します。

————————————
▼1. Selenium Web Driver の利用
————————————
オープンソースの selenium の WebDriver を利用し、Web サイト(HTML) から情報を抽出します。Selenium Web Driver は現在 Java, Ruby, Python, C#, JavaScript の言語に対応しています。

————————————
▼2. 事前準備
————————————
2-1. コンパイルに Maven を利用するため、Pom.xml に selenium の WebDriver の dependency を記載します。

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>8</source>
                <target>8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

<dependencies>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>
</dependencies>

以下のアイコンをクリックし、Maven の変更をロードすると dependency で指定したライブラリーが自動でインストールされ利用可能になります。

2-2. 以下のような header を含む HTML を用意し、サイトにアップします。

<body>
<div id="outer">
<div id="header">
<h1>kumomanのホームページのタイトル</h1>
</div>
<div id="main">
<div class="content"><h2>見出し1</h2>
<p>内容</p>
<h3>見出し2</h3>
<p>内容</p>
<h4>見出し3</h4>
<p>内容</p>
</div>
</div>

2-3. 今回 Chrome の browser を利用するため、chromedriver をインストールし、パスを確認。
sudo apt-get install chromium-chromedriver
whereis chromedriver

(result)
Chromedriver: /usr/bin/chromedriver

2-4. Chrome のバージョンを最新にします。
sudo apt-get upgrade google-chrome-stable

————————————
▼3. Selenium Web Driverを利用し、HTML にあるタイトルを抽出するコード
————————————
3-1. 以下のコードで HTML の <div id=”header”> を見つけて、要素を取り出します。
(例)

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class webparse0210317e1 {
    public static void main(String[] args){
        // set the path of Chrome
        System.setProperty("webdriver.chrome.driver","/usr/bin/chromedriver");

        try{
            // Start Chrome
            WebDriver driver = new ChromeDriver();
            // Set the used URL
            driver.get("http://xxxx");
            // Find an element
            WebElement element = driver.findElement(By.id("header"));
            // Print element
            System.out.println(element.getText());
        }catch (Exception e){
            throw(e);
        }
    }
}

3-2. 実行結果は以下となります。
(例)
—————————————-
Mar 20, 2021 10:00:00 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
kumomanのホームページのタイトル
—————————————-

————————————
▼4. 参考情報
————————————
(1) Downloads (selenium.dev)
(2) Selenium Maven Information
(3) Using chromedriver with selenium/python/ubuntu – Stack Overflow
(4) java – How can I select the div id using Selenium WebDriver? – Stack Overflow

以上です。参考になりましたら幸いです。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です