VBAでスクレイピング。指定ワード1位のURLを取得するサンプルプログラム

プロミディア合同会社の斉藤です。

以前クラウドワークス

「Excelの表に企業名がたくさん入っているので、それぞれの企業名で検索して1位に出てきたURLを表に記録していきたい」

という要件があり、VBAでサンプルを作成してみました。

その案件はけっきょく受注できなかったのですが、せっかくなので作成したサンプルを公開します。

VBAでスクレイピング。指定ワード1位のURLを取得するサンプルプログラム

VBAでスクレイピングの仕様

① IEのオブジェクトを利用する

② セルに入力しておいた企業名をキーワードとしてグーグルで検索する

③ レスポンスされたドキュメントから1位のURLが入っている部分を取得して、それを企業名右のセルに挿入する

④ 4秒待つ

 

実装のポイント

実装のポイントだけ以下で解説します。

IEオブジェクトの生成

 

グーグルで検索する

 

検索結果が返されるまで待つ

 

検索結果から1位のURLを取得する

 

1件読み込んだ後に、4秒間何もせず待つようにしています。

このウエイト時間が無いと、50件過ぎたあたりでグーグルから認証が求められてしまうからです。

 

課題

スクレイピングができることを確認するためのサンプルなので、エラー処理など、細かい対応は入れていません。

・読み込み件数は固定値にしています。

・エラー処理は入れていません。

・中断させる処理は入れていません。

 

ダウンロード

VBAスクレイピングサンプル

今回ご紹介したサンプルプログラムは下のボタンからダウンロードできます。

 

 

この記事を書いた人

斉藤 貞義

プロミディア合同会社代表。
会社員として約13年間、ソフトウェア開発の経験を積み2015年にPE-BANKに所属して独立。
システムの受託開発をメインとしながら、プログラミングスクール講師、Udemy講師、アフィリエイトサイト(30代のプログラミングスクール選び)の運営も行っている。