Webページの取得はサーバにリクエスト送付する方法以外にも、ブラウザのソースを解析する方法もあります。
こちらだと、ヘッダ情報やらトークンに対してのプログラム解析が不要なので、単純な処理ならこっちの方が良いかな。
で、Chromeのソース取得には、SeleniumとChromeDriverを使用しますが、最近エラーが出ていました。
ソースは以下のような感じ
var driver = new ChromeDriver(Service, options);
で、例外のメッセージはこんな感じ
System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83 (SessionNotCreated)
ChromeDriverがChromeとバージョンがあってないよ、というメッセージですね。
ChromeのバージョンはChromeの右上のボタンから、
ヘルプ→Google Chromeについて を選択すれば確認できます。
僕の場合はversion87なので、ChromeDriverとズレてますね。
ChromeDriverはNugetから取得したかったのですが、version85までしか提供されていませんでした。
なので、ChromeDriverのサイトからChromeを同じバージョンを取得しました。
ダウンロードしたchromedriver.exeをNugetのパッケージとプログラム実行フォルダに上書きすれば、ちゃんと動いてくれました♪
今回は無理やり更新してみましたが、Chromeのバージョンアップのたびに必要になる作業です。
なので、実際はちゃんと画面にエラーメッセージ出すようにするとか、なんらかの工夫をすべきですねぇ