【Python】Selenium:Edgeを自動操作する方法
2021.09.09 /
本記事ではPythonのSeleniumによる、Edgeを操作する方法について解説します。
Seleniumは高度なWebページ操作ができるモジュールです。
ChromeやEdgeなど様々なブラウザをスクレイピングといった自動操作を可能とします。
ChromeとEdgeなど操作するブラウザによって、導入の部分が異なります。本記事ではEdgeを自動操作する方法に焦点を当てて解説していきます。
SeleniumによるChromeの操作については以下記事を参照ください。
本記事を通して以下の知識を学べます。
- Edge操作前の事前準備
- SeleniumによるEdgeの操作方法
Seleniumとは
Seleniumはブラウザの操作・制御に使用されます。特にブラウザを自動操作して情報を集めるスクレイピングに利用されます。
スクレイピングについては以下記事で詳しく解説しています。
事前準備
EdgeをSeleniumで操作するにはEdgeのバージョンに合ったWebDriverが必要になります。
またSelenium自体もPythonの標準ライブラリではないため、インストールする必要があります。
SeleniumでEdgeを操作する前の事前準備として次のことを行います。
- Seleniumのインストール
- Edgeのバージョン確認
- Edge用のWebDriverダウンロード
Seleniumのインストール
Seleniumは標準ライブラリではないので、pipでPyPIからインストールしましょう。
pip install selenium
Edgeのバージョン確認
Edgeのバージョン確認は次の流れで行います。
- Edge右側の…をクリックし、「設定」を選択
- 「Windows Edgeについて」を選択し、右画面からバージョン情報を確認
2021年9月現在では93.0.961.38が最新バージョンです。
EdgeのWebDriverダウンロード
EdgeのWebDriverをダウンロードする方法は2つあります。
- Microsoftのサイトからダウンロードする
- Windows10の「オプション機能の管理」からダウンロードする
各方法について見ていきましょう。
Microsoftのサイトからダウンロードする
EdgeのWebDriverをダウンロードするために以下サイトにアクセスします。
次に確認したEdgeのバージョンと同じバージョンのWebDriverをダウンロードします。
基本的には最新のEdge WebDriverをダウンロードすれば大丈夫です。
「edgedriver_win64.zip」がダウンロードされますので解凍します。
解凍すると「msedgedriver.exe」が得られます。
このファイルがEdgeのWebDriver本体となり、SeleniumでEdgeを操作する場合に利用することになります。
Pythonスクリプトと同じ階層に保存、またはわかりやすい場所に移動してください。
Windows10の「オプション機能の管理」からダウンロードする
Windows10のオプション機能からEdgeのWebDriverをダウンロードすることができます。
- 「スタート」を選択し、「設定」をクリック
- 「Windowsの設定」画面から「アプリ」を選択
- 「アプリと機能」画面から「オプション機能」を選択
- 「オプション機能」画面から「機能の追加」を選択
- 「Microsoft WebDriver」をチェックし、インストールをクリック
Microsoft WebDriverをインストールしたら、パソコンを再起動します。
これにより、以下パスにWebDriverがインストールされます。
C:\Windows\System32\MicrosoftWebDriver.exe
SeleniumでEdgeを操作する方法
webdriverのインポート
Pythonスクリプトの先頭で次のようにseleniumからwebdriverをインポートします。
from selenium import webdriver
これによりEdgeを起動するためのwebdriverが使用できます。
その他にもEdgeの操作に必要なモジュールはスクリプトの先頭でインポートします。
Edgeを開く
Edgeを起動するためにwebdriver.Edge()を使用します。
引数には取得したmsedgedriver.exeへのパスを指定します。
driver = webdriver.Edge(executable_path="msedgedriver.exe")
Edgeを起動後、希望のサイトにアクセスするためにget()メソッドを使います。
引数にはURLを渡します。
driver.get("https://office54.net/")
この方法ではEdge上に「Microsoft Edgeは自動テストソフトウェアによって制御されています」と表示されます。
「Microsoft Edgeは自動テストソフトウェアによって制御されています」を消す
Chromeでこの表示を削除する方法は次の記事で紹介しています。
【Python】Selenium:「Chromeは自動テストソフトウェアによって制御されています」を消す方法
Edgeではpipでmsedge-selenium-toolsをインストールします。
pip install msedge-selenium-tools
スクリプトでは以下のように記述します。
from msedge.selenium_tools import EdgeOptions, Edge
options = EdgeOptions()
options.use_chromium = True
options.add_experimental_option("excludeSwitches", ['enable-automation'])
driver = Edge(executable_path="msedgedriver.exe", options=options)
driver.get("https://office54.net/")
これにより「Microsoft Edgeは自動テストソフトウェアによって制御されています」という表示を消すことができます。
その他の操作
上記以外はChromeを操作する方法と変わらないです。
PythonのseleniumでEdgeを操作するその他の方法については以下記事をご参照ください。
【Python】Selenium:ブラウザ操作して静的・動的(Ajax、javascript)ページから情報を取得
サンプルプログラム
以下のプログラムは当サイトOFFICE54にアクセスし、pythonページへのリンクをクリックするものです。
import time
from selenium import webdriver
driver = webdriver.Edge(executable_path="msedgedriver.exe")
driver.get("https://office54.net/")
time.sleep(3)
element = driver.find_element_by_css_selector('body > header > div > div > ul > li.category-python > a')
element.click()
まとめ
本記事「【Python】Selenium:Edgeを自動操作する方法」はいかがでしたか。
ぜひSeleniumによるブラウザの自動操作を仕事に応用して、業務効率化を進めてみてください。