検索したいキーワードがたくさんある場合、人力で行わなくても、VBAがあればマクロが自動で取得します。
IEを使用し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するだけです。
Sub sample_IE_Google_Search() Dim objIE As InternetExplorer '■IEを起動 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True '■Google検索結果に直接アクセス(testで検索) objIE.navigate "https://www.google.co.jp/search?q=" & "test" Call Call_IE_WaitTime '■検索結果はClassName「rc」に格納された1番目(0)のURLを取得 MsgBox objIE.document.getElementsByClassName("rc")(0).getElementsByTagName("a")(0).href '■複数キーワードの場合は人が検索するときと同じ。(test sampleと半角スペースを入れて検索) objIE.navigate "https://www.google.co.jp/search?q=" &"test" & " " & "sample" End Sub
注意点
- 毎度おなじみですが、Call_IE_WaitTimeの処理はこちらを参照ください。
- 処理件数が増えるとGoogleから弾かれる(ロボットと思われ、正しく検索結果を表示してくれなくなる)為、
ある程度目視の確認も必要です。
その他
Internet Explorerを使用して、Webスクレイピングは敷居が高い風に捉えられますが、
上記のように、パーツ化して組み合わせ処理するだけです。
Web上のデータを触りたい要望は会社様でも個人様でも多いと思います。
VBA IE操作を覚えて効率化しませんか?
作成が大変であれば弊社で代行開発も可能です。お気軽にお問い合わせください。
コメント