Selenium インストール

Selenium を使用する前に、まずインストールする必要があります。以下は Selenium のインストールの詳細な手順です。

Selenium は多くのプログラミング言語をサポートしていますが、本チュートリアルシリーズでは Python を例に説明します。

Python をまだインストールしていない場合は、次の手順に従ってインストールしてください:

  1. アクセスPython 公式サイト。
  2. ご利用の OS に合った Python インストールパッケージをダウンロードします。
  3. インストールパッケージを実行し、インストール中に「Add Python to PATH」オプションにチェックを入れてください。
  4. インストールが完了したら、コマンドライン(Windows の場合はコマンドプロンプトまたは PowerShell、macOS と Linux の場合はターミナル)を開き、次のように入力しpython --version 或 python3 --version、Python が正常にインストールされたか確認します。

Python の内容については、こちらも参照してください:Python チュートリアル

Python をインストールしたら、次を使用してpipSelenium をインストールします。pipPython のパッケージ管理ツールであり、Python ライブラリのインストールと管理に使用されます。

コマンドラインを開き、次のコマンドを入力して Selenium をインストールします:

pip install selenium

Python3 を使用している場合は、次を使用する必要があるかもしれませんpip3:

pip3 install selenium

インストールが完了したら、次のコマンドで Selenium が正常にインストールされたか確認できます:

pip show selenium

Selenium のバージョン情報が表示されたら、インストール成功です。

ブラウザードライバーのダウンロード

Selenium はブラウザードライバーを介してブラウザーを制御する必要があります。

ブラウザーによって必要なドライバーが異なります。以下は一般的なブラウザーのドライバーのダウンロード先です:

お使いのブラウザーのバージョンに合ったドライバーをダウンロードし、そのパスをシステムの環境変数に追加するか、ドライバーファイルを Python スクリプトと同じディレクトリに配置します。


Selenium の使用

Selenium とブラウザードライバーをインストールしたら、自動化スクリプトの作成を開始できます。

以下は、Selenium を使用して Web ページを開き、ページタイトルを取得する方法を示す簡単な例です。

1、Selenium をインポート

まず、Python スクリプトに Selenium のwebdriverモジュールをインポートする必要があります:

from selenium import webdriver

2、ブラウザーを起動

次に、ブラウザーのインスタンスを起動する必要があります。本シリーズでは Chrome を例にします。

driver = webdriver.Chrome(executable_path='path/to/chromedriver')

ブラウザーを選択して WebDriver を初期化します:

例

from selenium import webdriver

# Chrome ブラウザーを使用
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

# または Firefox ブラウザーを使用
# driver = webdriver.Firefox(executable_path='/path/to/geckodriver')

# または Edge ブラウザーを使用
# driver = webdriver.Edge(executable_path='/path/to/msedgedriver')

Selenium 4 から、ブラウザードライバーの管理方法が変更されました:Selenium 4 は、システムにインストールされているブラウザーのバージョンを自動的に検出し、対応するドライバーをダウンロードしようとします。つまり、ユーザーは特定のバージョンのドライバーが必要な場合を除き、手動でドライバーをダウンロードしてパスを設定する必要がなくなります。

例

from selenium import webdriver

driver = webdriver.Chrome()  # Firefox など他のブラウザーを使用する場合は、それに応じて変更が必要

中国国内のネットワーク環境では、自動検出によるドライバーのダウンロードには異なるネットワーク環境が必要となるため、ドライバーを手動でダウンロードし、ドライバーのパスを指定することをお勧めします。

Selenium 4 では、webdriver.Chrome でドライバーのパスを直接設定するのではなく、Service オブジェクトを導入して設定します。これにより、非推奨の警告を回避し、ドライバーが正しく読み込まれることを保証できます。例:

例

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

service = ChromeService(executable_path="PATH_TO_DRIVER")
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)

もしchromedriverをシステムパスに配置した場合、または Python スクリプトと同じディレクトリに配置した場合は、executable_pathパラメーターを省略できます:

driver = webdriver.Chrome()

3、Webページを開く

次のgetメソッドを使用して Web ページを開きます:

driver.get('https://www.baidu.com')

4、ページタイトルを取得

私たちはtitle属性を使用して現在のページのタイトルを取得できます:

print(driver.title)

5、ブラウザーを閉じる

操作が完了したら、ブラウザーを閉じることを忘れないでください:

driver.quit()

6、完全な例

上記の手順を組み合わせた完全なコードは次のとおりです:

例

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

# 正しいドライバーのパスを設定
service = ChromeService(executable_path="/サンプル/Downloads/chromedriver-mac-arm64/chromedriver")
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)


# ウェブサイトを開く
driver.get("https://www.baidu.com")

# ページタイトルを取得
print(driver.title)

# ブラウザーを閉じる
driver.quit()

上記のコードが正常に実行されると、ブラウザーが開かれ、Webページが開かれます。次のようになります:

開き終わると、Webページのタイトルが出力されます:

百度で検索すれば、分かる。

window.stop() を使用してページの読み込みを強制的に停止する

場合によっては、Webページの読み込みが遅すぎて例外が発生することがあります。データを正常に取得するために、ページを数秒読み込んでから、JavaScript コード window.stop() を実行して、ページの読み込みを強制的に停止できます。

例

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

# 正しいドライバーのパスを設定
service = ChromeService(executable_path="/サンプル/Downloads/chromedriver-mac-arm64/chromedriver")
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)

# ウェブサイトを開く
driver.get("https://www.baidu.com")

# ページの読み込みが完了するまで待機
time.sleep(2)  # 必要に応じて待機時間を調整できます

# ページの読み込みを強制的に停止
driver.execute_script("window.stop();")
# ページタイトルを取得
print(driver.title)

# ブラウザーを閉じる
driver.quit()

一般的な操作

Webページを開いたりタイトルを取得したりする以外にも、Selenium は多くの操作をサポートしています。以下に、一般的な操作の例を示します:

1、要素の検索

次のfind_elementメソッドを使用してページ上の要素を検索できます。例えば、入力ボックスを検索してテキストを入力します:

例

input_element = driver.find_element('name', 'q')
input_element.send_keys('Selenium')

2、ボタンのクリック

次のclickメソッドを使用してボタンをクリックします:

例

button_element = driver.find_element('name', 'btnK')
button_element.click()

3、ページの読み込みを待つ

ページ要素がすぐに読み込まれない場合があります。そのような場合は、WebDriverWaitを使用して要素が表示されるまで待機できます:

例

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.NAME, 'q')))
その他の拡張