Selenium(Edge/Chrome)

Selenium「Edge/ChromeでGoogle検索する(GET送信)」【エクセルマクロ】

検索したいキーワードがたくさんある場合、人力で行わなくても、VBAがあればマクロが自動で取得します。
Edge/Chromeを使用しGoogle検索を行い、誰でも簡単に結果を抽出する事が可能です。

ご丁寧にGoogleトップページからキーワード検索する事もよいのですが、
GET送信をVBAから行う事で検索結果を直接表示する事が可能です。

GET送信とは

HTTP通信のメソッドの一つです。似たキーワードで「POST通信」があります。
ざっくり説明すると検索するキーワードをURLに付与します。
Google検索の場合、下記のように「search?q=」の後に指定したキーワードを付与してURLを起動します。

■Googleでtestと検索した場合のURL(ググったURL)
https://www.google.co.jp/search?q=test

Google検索サンプルコード

VBAでも同様にキーワードを入れてNavigateするだけです。

Dim driver As New Selenium.WebDriver
Public Sub sample()
    '■chrome かEdgeどちらかを選択。
    driver.start "chrome"
'   driver.start "edge"
 

    '■Google検索結果に直接アクセス(testで検索)
    driver.Get "https://www.google.co.jp/search?q=" & "test"
    

    '■検索結果はClassName「yuRUbf」に格納された1番目(0)のURLを取得
    MsgBox driver.FindElementsByClass("yuRUbf")(1).FindElementsByTag("a")(1).Attribute("href")
    
    '■複数キーワードの場合は人が検索するときと同じ。(test sampleと半角スペースを入れて検索)
    driver.Get "https://www.google.co.jp/search?q=" & "test" & " " & "sample"
 
End Sub

注意点

  • 処理件数が増えるとGoogleから弾かれる(ロボットと思われ、正しく検索結果を表示してくれなくなる)為、
    ある程度目視の確認も必要です。

SeleniumBasicについて

Internet Explorer11 のサポート期限が2022年6月までと、スクレイピング自体入れ替えていく必要があります。
今一番スムーズなのはSeleniumBasicを使用したスクレイピングと考えます。

但し、VBAでのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。

コメント

タイトルとURLをコピーしました