Selenium インストール
Selenium を使用する前に、まずインストールする必要があります。以下は Selenium のインストールの詳細な手順です。
Selenium は多くのプログラミング言語をサポートしていますが、本チュートリアルシリーズでは Python を例に説明します。
Python をまだインストールしていない場合は、次の手順に従ってインストールしてください:
- アクセスPython 公式サイト。
- ご利用の OS に合った Python インストールパッケージをダウンロードします。
- インストールパッケージを実行し、インストール中に「Add Python to PATH」オプションにチェックを入れてください。
- インストールが完了したら、コマンドライン(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 はブラウザードライバーを介してブラウザーを制御する必要があります。
ブラウザーによって必要なドライバーが異なります。以下は一般的なブラウザーのドライバーのダウンロード先です:
- Chrome: ChromeDriver、ChromeDriver の説明はこちらを参照してください:ChromeDriver の紹介。
- Firefox: GeckoDriver
- Edge: EdgeDriver
お使いのブラウザーのバージョンに合ったドライバーをダウンロードし、そのパスをシステムの環境変数に追加するか、ドライバーファイルを 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 を初期化します:
例
# 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 は、システムにインストールされているブラウザーのバージョンを自動的に検出し、対応するドライバーをダウンロードしようとします。つまり、ユーザーは特定のバージョンのドライバーが必要な場合を除き、手動でドライバーをダウンロードしてパスを設定する必要がなくなります。
例
driver = webdriver.Chrome() # Firefox など他のブラウザーを使用する場合は、それに応じて変更が必要
中国国内のネットワーク環境では、自動検出によるドライバーのダウンロードには異なるネットワーク環境が必要となるため、ドライバーを手動でダウンロードし、ドライバーのパスを指定することをお勧めします。
Selenium 4 では、webdriver.Chrome でドライバーのパスを直接設定するのではなく、Service オブジェクトを導入して設定します。これにより、非推奨の警告を回避し、ドライバーが正しく読み込まれることを保証できます。例:
例
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.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.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.send_keys('Selenium')
2、ボタンのクリック
次のclickメソッドを使用してボタンをクリックします:
例
button_element.click()
3、ページの読み込みを待つ
ページ要素がすぐに読み込まれない場合があります。そのような場合は、WebDriverWaitを使用して要素が表示されるまで待機できます:
例
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')))