#初めに
弊社では、Powershell+Internet ExplorerのWEBスクレイピングによる自動化を行ってきましたが、マイクロソフト社から2022年6月15日以降Internet Explorerのサポート打ち切りが発表されました。
代替手段として、powershell + selenium chromeで環境構築を行った際の覚書記事になります。(2021/11/11現在)
powershell + selenium edgeでの環境構築も検討しましたが、現webdriverのバージョンではremote-debugging-portを使ってのブラウザ再操作ができなかったため(EdgeのChromeドライババージョンのエラーがでる)最終的にChromeでの対応となりました。
#環境
OS :WINDOWS10 21H1
powershell : バージョン: 5.1.19041.1320(OS標準)
chrome : バージョン: 95.0.4638.69(記事作成時の最新)
※CHROMEブラウザの「ヘルプ」→「Google Chromeについて」で確認できます
#POWERSHELLでのselenium Chrome環境構築について(概要)
①SeleniumのWebDriverをダウンロードする
②ダウンロードされたファイル(nupkgファイル)から、DLLファイルを獲得する。
③Chrome Driverをダウンロードする
④POWERSHELLスクリプトにDLしたファイルを組み込む。
#POWERSHELLでのselenium Chrome環境構築について(詳細)
##①SeleniumのWebDriverをダウンロードする
###selenium.devにアクセスし、C#のdriverをダウンロードする
https://www.selenium.dev/downloads/
画面を少しスクロールしたところにある、Selenium Clients and WebDriver Language BindingsのC#版が対象。クリックするとファイルがダウンロードされます。そのままでは使えないので②の工程を実施してください。
##②ダウンロードされたファイル(nupkgファイル)から、DLLファイルを獲得する。
###該当ファイルを右クリック→プロパティを開き、セキュリティの許可するをチェック
セキュリティ設定がOFFのままだと、処理に影響があるみたいです。
###該当ファイルの拡張子をzipに変更の上、解凍しDLLファイルを獲得する。
ファイルをselenium.webdriver.4.0.1.nupkgからselenium.webdriver.4.0.1.zipにリネームしてください。
リネームしたZIPファイルを解凍してください。
powershellのVersionが5.*.の場合は、net48フォルダの中にあるDLLファイルが該当のファイルになります。
※powershellのVersionが6..*の場合はnetstandardのDLLを利用するようです。
➂Chrome Driverをダウンロードする
ダウンロードサイトから、現在利用中のCHROMEのバージョンに応じたドライバーをダウンロードする。
##④POWERSHELLスクリプトにDLしたファイルを組み込む。
参考に、”開きたいURL”に格納されたURLのHTMLソースをクリップボードに格納するスクリプトです。
$webDriverDllPath = "seleniumドライバの格納場所"
$chromeDriverDirPath = "CHROMEドライバの格納場所"
#dll読み込み
Add-Type -Path $webDriverDllPath
#ドライバにオプションを読み込み用
$Options = New-Object OpenQA.Selenium.chrome.ChromeOptions
#DebuggerAddressを指定したCHROMEを操作する場合
#$Options.DebuggerAddress = "127.0.0.1:9222"
#
#chrome起動
$chromeDriver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($chromeDriverDirPath,$Options)
#日本語化け対応 文字コードをSHIFT-JISに
#chcp 932
#URL開く
$chromeDriver.Url = "開きたいURL"
#表示中のページソースを$htmlに格納
$html=$chromeDriver.PageSource
#htmlの内容をクリップボードにコピー
$html|CLIP
exit
#最後に
旧処理から、ほとんど関数関係の互換がなく、ほとんど書き換えになってしまいましたが
動作はかなり安定するようになりました。
Seleniumの機能は便利なものが多いようなので、活用していければと思います。