注意!記事中に「Chronium」という表記が出てきますが、正しくは「Chromium」です!
自身の戒めのためにこのまま残しますが、閲覧する方はお間違いないよう、よろしくお願い致します!
Edge の WebDriver 関連の情報は拾うの大変なので、自分メモ
pip でパッケージのインストール
pip install selenium==3.141.0
pip install msedge-selenium-tools==3.141.4
pip install webdriver-manager==3.4.2
Anacondaはライセンスの関係で、使いません
今は改善されてるかもしれませんが、少し前?まで、最新のseleniumと最新のwebdriver-managerの組み合わせでエラーが起きていたので、バージョンを指定したほうが無難
pip install msedge-selenium-tools selenium==3.141.0
と紹介してるサイトが多いから、msedge-selenium-toolsもseleniumのバージョンから受ける影響の大きいパッケージと推測される(未確認)
他の必要なパッケージは、自分で判断して入れてね
Importの宣言
宣言しないと使えないよー
1行目が selenium (webdriver) の宣言
2行目が webdriver_manager の宣言
3行目が selenium_tools の宣言
from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager
from msedge.selenium_tools import EdgeOptions, Edge
Edge のオプションを指定
例) Edgeを--disable-web-securityと--user-data-dir=C:\Chrome dev sessionのオプションを付与する場合
options = EdgeOptions()
options.use_chromium = True
options.add_argument('disable-web-security')
options.add_argument('user-data-dir=C:\\Chrome dev session')
ここではオプションを指定しているだけで、Edgeの実行はこの後
WebDriver にオプションを指定して Edge 実行
例) WebDrivr(msedgedriver.exe) を--log-level=ALLと--log-path='ファイル名'のオプションを付けて実行する場合
driver = Edge(executable_path = EdgeChromiumDriverManager().install(),
service_args = ['--log-level=ALL'],
service_log_path = 'ファイル名',
options = options)
説明
-
executable_path =には、WebDriver のパスを指定 -
EdgeChromiumDriverManager().install()は、Edgeがバージョンアップした時にEdge用WebDriverを自動更新してくれる、パッケージwebdriver_managerの有難い機能 -
service_args =には、msedgedriver.exeに指定するオプションを指定 -
service_log_path =には、ログファイル名を記載、これを記載する事で--log-path=を指定したのと同じ事になるみたい -
options = optionsは、Edge オプションで指定したモノを記載
2022/3/1現在、executable_path = は非推奨になって、service オブジェクトを使用するようにと言われていますが
渡した引数はselenium_tools内でservice オブジェクトになって渡されているので、心配しなくても良いです
こうする事で、Selenium が WebDriver に投げてるリクエストが取り放題
えっ、プロキシ挟んだ方が早い? 何それ、旨いの?