メモ書きとして残しておきます。
スクレイピングをする時にはいつもIEをC#から自動操縦して取得していましたが、Seleniumを使った方がむっちゃ楽でおすすめです。
Selenium(セレニウム)と読みます。
Seleniumには、Google Crome/Firefox/IEとそれぞれの代表的なブラウザに対応したDriverが出ています。
Visual Studioを使用してSeleniumのパッケージをダウンロードする場合
メニュー > プロジェクト > NuGetパッケージの管理(N)
からSelenium系を見つけてインストールしておきましょう。
詳しくはググって他のサイトみてください。
XPathを簡単に調べる方法
Cromeを開いて調べたいツールの上で右クリック > 検証(I) > Copy > Copy XPath
これむっちゃ便利。
一瞬でスクレイピングしたい要素のXPathを取得できちゃいます。
初めて知ったけどむっちゃ便利でした。
Chromeのバージョンがあがるとエラーが発生する
2019/4/30 Cromeをいつも通りC#から操作しようとしたところエラーが発生しました。
エラーの内容はこちらです。
session not created: Chrome version must be between 70 and 73
(Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 10.0.17763 x86_64) (SessionNotCreated)
GoogleCromeのバージョンが74に上がった(手動で更新した)為に、Seleniumで使用するChromeDriverのバージョンを上げないと動作しない為に、このエラーが発生してしまっています。
GoogleCromeは原則として常に最新を使う事を推奨されています。
そこで私はChromeのバージョンをアップしました。
しかし、ChromeDriverが古くなり最新バージョン(74)に対応していない為に、今回のエラーが発生したという事です。
ChromeDiverのエラーでやったこと
メニュー > プロジェクト > 更新プログラム
Microsoft.Web.Xdt
Selenium.Chrome.WebDriver
Selenium.WebDriver.ChromeDriver
更新モジュールが出ていたのでこれらを更新しました。
更新:2020/12/01
Google Chromeは月に1回以上更新が入ります。
それに合わせてChromeDriverも更新を都度行っていく必要があり
ます。
プロジェクトの上で右クリック > NuGet パッケージの管理
CHROMEと入力します。
ここで最新ドライバーが出ている場合には、それを選択しインストールを行います。
更新したモジュール
Selenium.WebDriver.ChromeDriver 作成者:jsakamoto, 14.4M 件のダウンロード
このドライバは、14.4M
つまり約1400万件もダウンロードされている事がわかります。
ダウンロード件数が多い方が世界中の人がダウンロードしており、動作検証過程で揉まれている為安定しています。
Chromeドライバーの最新が出た場合には、ダウンロード件数が大きい物から優先的にダウンロードして使う様にすると良いです。