検索したいキーワードがたくさんある場合、人力で行わなくても、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でのネット記事は少なく困っている方も多いと思います。
弊社で代行開発も可能ですので、お気軽にご用命ください。
コメント