前回の続きです。前回はYahoo画像検索を使いましたが、今回はGoogle画像検索を使います。Google先生は強敵です。

実際に検索をしてurlはhttps://www.google.co.jp/search?q=%E9%BD%8B%E8%97%A4%E9%A3%9B%E9%B3%A5&tbm=ischであることが判明。あとは

これでHTMLを解析して前回同様にすれば・・・と思ったら

BASE64エンコードだ。

しかも

urlタイプのものもあります。今回はちょっと面倒です。

Yahoo画像検索では画像は検索対象のものだけでしたが、Google画像検索では上のほうに別の検索ワードの画像も表示されます。目的の画像のimgタグは div#islrgタグの配下にあります。また「もっと見る」は

となっています。

以下のコードでimgタグのsrc属性を取得することができます。

NuGetでSelenium.WebDriverとSelenium.Support、そして操作したいブラウザのDriverをインストールします。今回はChromeを操作するのでSelenium.Chrome.WebDriverをインストールします。

imgタグのsrc属性を取得できたらあとはurlかどうか調べてurlであれば前回同様に GetJpgFile(string filePath, string url)メソッドで画像ファイルとして保存します。base64エンコードされていたら、Convert.FromBase64Stringメソッドでbyteの配列に変換してSystem.IO.File.WriteAllBytesメソッドでファイルとして保存します。