Google検索結果をExcelに取得する方法

このQ&Aのポイント
  • Excel2016を使って、Google検索の結果を自動的に取得する方法をご紹介します。
  • 特定の語句の検索結果(5位まで)をExcelに取得し、タイトルとURLを表示させることができます。
  • マクロを使用して、ロボットでない証明のクリックをしながら、検索結果を自動で取得することができます。
回答を見る
  • ベストアンサー

Google検索の結果、5位までをセルに記入するマ

A1|B1|C1|D1|E1|F1| のそれぞれの1行目に、検索したい語句が記入されています。 その検索したい語句の検索結果(5位まで)を、 それぞれの1行目の下へ表示させたいです。 取得して記入したいデータは、「タイトルとURL」です。 A1|B1| タ|タ| URL|URL| ずっと、これを手動でやっていたのですが、 調べる語句がかなり増えてしまい、マクロで自動化したいです。 いくつかGoogle検索をしたら、 ロボットでない証明のクリックをしないとならないです。 おそらく、休み休みで動かす様になるかと思いますが、 Google検索の結果をExcelに取得するというのは、マクロでできるでしょうか? できるとしたら、どのようなマクロの記述でできるでしょうか? Excel2016を使っています。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (713/1472)
回答No.2

>実は、検索したい語句が1000以上あります。 何で最初に書いてくれないんですか。 てっきり6件以下だと思いました。 ' Sub Macro1() '   Dim Col As Integer '   For Col = Cells(11, Columns.Count).End(xlToLeft).Column _       To Cells(1, Columns.Count).End(xlToLeft).Column     GoogleGet Col, 5, False   Next Col End Sub このように置き換えれば、既にデータのある所は処理されず、空白の所だけ処理されます。

その他の回答 (1)

  • SI299792
  • ベストアンサー率48% (713/1472)
回答No.1

' Option Explicit Declare Sub Sleep Lib "kernel32" ( _   ByVal dwMilliseconds As Long) ' Sub Macro1() '   Dim Col As Integer '   For Col = 1 To Cells(1, Columns.Count).End(xlToLeft).Column     GoogleGet Col, 5, True   Next Col End Sub ' Sub GoogleGet(Col As Integer, Count As Integer, Visible As Integer) '   Dim IE As Object   Dim Links As Object   Dim Row As Integer   Dim Length As Integer '   Set IE = CreateObject("InternetExplorer.Application")   IE.Navigate "https://www.google.co.jp/search?q=" & Cells(1, Col)   IE.Visible = Visible   BusyWait IE   Row = 2 '   For Each Links In IE.Document.Links '     If Left(Links.InnerHtml, 3) = "<h3" Then       Length = InStr(Links.InnerText & vbCrLf, vbCrLf) - 1       Cells(Row, Col) = Left(Links.InnerText, Length)       Cells(Row + 1, Col) = Links.Href       Row = Row + 2 '       If Row = Count * 2 + 2 Then         Exit For       End If     End If   Next Links '   If Visible > 1 Then     IE.Quit   End If   Set IE = Nothing End Sub ' Sub BusyWait(IE As Object) '   While IE.Busy Or IE.ReadyState < 4     DoEvents     Sleep 100   Wend End Sub     GoogleGet Col, 5, False の所ですか、数を増やせば件数を増やせます。(最大10) また、その次は、TrueならIE表示、False なら非表示、1ならIEを開いておく。デバックの為のものです。

mute_low
質問者

お礼

回答&マクロありがとうございます! 実は、検索したい語句が1000以上あります。 ですが、途中でロボットでない証明のクリックがあり、 一度マクロを止めないとならないです。 その際、再開すると、またA1から始めてしまいます。 これを、前回の途中から始めるようにはできるでしょうか? A1から検索結果の取得 ↓ ロボットでない証明のクリック画面でマクロストップ ↓ ストップした所から、マクロ再開 このような形が理想です。 よろしくお願いいたします。

関連するQ&A

  • Google検索をして、その下に検索結果(URL)

    A列1行から、ずっと右へキーワードが記入されています。 調べたいキーワードは、400近くあります。 その1行目にあるキーワードをGoogle検索をして、 検索結果のURLだけを、そのキーワードの下に表示させたいです。 検索結果は全部で10ページくらい、大体100個のURLになるかと思います。 (youtube動画や広告などは含めないです) このようなことは、Excelのマクロでできるでしょうか? できるとしたら、どのようなマクロの記述になるでしょうか? Excel2016です。 よろしくお願いいたします。

  • Google検索の結果を、Excelにまとめる

    とあるキーワードでGoogle検索をして、 その検索結果をExcelにまとめたいです。 まとめたい情報は、検索結果のサイトタイトルとURLです。 検索結果の全てをExcelにまとめたいです。 おそらく100件くらい?だと思います。 これを、マクロを組んで自動でできたりするでしょうか? どのような記述でできるでしょうか? Excel2016です。 よろしくお願いいたします。

  • Google検索のサイトURLをエクセルにまとめる

    Google検索でキーワードを検索して、 その検索結果のサイトURLをエクセルにまとめたいです。 一つずつやるとかなり大変なので、エクセルで効率やりたいです。 まとめるサイトURLは、100位くらいまで取得したいです。 これは、エクセル(マクロ)でできるでしょうか? どのような記述で取得できるでしょうか? エクセル2016です。 よろしくお願いいたします。

  • googleの検索結果が異なるのはなぜ?

    現在IE10を利用しています。IE10はurl欄に検索キーワード「xxx」を 入れるとgoogleによる検索結果が表示されます。これをAとします。 IE10でwww.google.co.jpとurl欄に直接入力しgoogleにジャンプします。 そこで表示される検索テキストボックスに「xxx」と入力すると検索結果 が表示されます。これをBとします。 IEではなくfirefoxを起動し検索欄に「xxx」と入力すると検索結果が 表示されます。これをcとします。 スマホのgoogleアプリで「xxx」を検索すると検索結果が表示されます。 これをDとします。 さて、ここでおかしなことがあります。以上の検索結果の内 BCDでは、検索される我がホームページがAでは全く検索表示 されません。BCDではトップに表示されるのにAでは全く 表示されないのは何故でしょうか? ie10の閲覧キャッシュを 削除しても同じ結果です。 どなたか分かる方がいましたら教えてください。

  • 検索結果が○件以下だったら隣に○

    C1から下へずらーっと、キーワードや文章が記入されています。 このセル内のキーワードをGoogle検索して、『検索結果が○件以下だったら隣に○』 という風に分けていきたいです。 こういう作業は、マクロでできるでしょうか? どのような記述でできますか? EXCEL2016です。 よろしくお願いいたします。

  • グーグル検索結果 ワケがわからない・・。

    検索語句 「アイドル」 をグーグルで調べると、とあるデリ○リーヘ○スのトップページが1位でヒットします。 ところがこのトップページ、中身を見ても「アイドル」という語句がなんとひとつも入っていないのです。 たしかにタイトルには英字があるものの、カタカナはどこ探してもありません。 いったいグーグルロボットは何を考えているのでしょうか? こんなんではSEO対策もへったくれもないかと思いますが・・。 それとも何か悪い事してるのかなぁ??

  • Excelのセルをコピペして、Google検索をす

    ExcelのA列にキーワードが記入されています。  A列 1 東京 2 大阪 3 静岡 4 福岡 このA列の1~4を選択してコピペ。 コピペした1~4を↓という風に、Google検索したいです。 Google検索 東京(タブ1)|大阪(タブ2)|静岡(タブ3)|福岡(タブ4) 「Pasty」というGoogleChromeのエクステンションがあり、 それは、URLをコピペして、Google検索できるというものです。 Pastyのキーワード版で、同じようなことをしたいと思っています。 Excelのハイパーリンクで同じようなことができますが、 一つずつしかできませんし、いくつかやってると規制?で止まります。 A列にあるキーワードを効率良く、 タブで分けて、Google検索していきたいです。 Excelの式や機能、エクステンション、ツール・ソフトとかで、 Excelのセルをコピペして、Google検索をすることはできますでしょうか? できるとしたら、どのような方法がありますでしょうか? 教えていただけたら、嬉しいです。 Excel2016を使っています。 よろしくお願いいたします。

  • 複数の検索結果をexcelに取り込む方法

    例えば、添付画像のようにexcelのあるシートのA列に検索ワードが書かれていて、それぞれの検索ワードでgoogle検索した結果(タイトル、URL)をexcelに取り込むにはどのようにしたらよいでしょうか? ・検索ワードは100個以内 ・取得するgoogle検索結果は最初の1ページの10件 ・取得する結果はシートを分けず、1枚のシートにまとめる 以上のようなことをしたいです。 少ししたいことと異なりますが、こちらの記事を試しに行ってみました。 しかし、「インデックスが有効範囲でありません」と表示されうまくいきませんでした。 http://yumem.cocolog-nifty.com/excelvba/2012/03/webgoogle-c0f1.html 行った方法 (visualBasicを開き、thisworkbookをダブルクリックーコードを貼り付けーexcelに戻り、マクロを実行) 環境:excel2007 excel初心者のわたしではまったくお手上げなので質問させていただきました。 先に記載したとおりのことをecxelでできないでしょうか?

  • 独自ドメインのGoogleの検索結果について

    独自ドメインのGoogleの検索結果について とあるレンタルサーバーで、数ヶ月前にサイトを公開しました。 その時のサイトのURLは「http://ユーザー名.サーバー.com/」のようなサブドメイン形式で与えられていました。 サイトを公開してから1ヶ月ほどたった時に、独自ドメインを取得し、そのドメインでサイトにアクセス出来るようにしました。 しかし、今Googleで自分のサイト名を検索すると旧URLである「http://ユーザー名.サーバー.com/」しか出てきません。 どちらのURLも使用可能ですが、個人的にはサーバー名が入ったURLではなく取得した独自ドメインでアクセスしてもらいたいので、Googleの検索結果から「http://ユーザー名.サーバー.com/」を削除してもらい、現在の独自ドメインを検索結果として表示してもらいたいのです。 しかし具体的にどのようにすれば思うように検索結果のURLを変更できるのか分からず、とても困っております。 是非知識をお貸しください。

  • エクセルで、このようなセル検索は出来ますか?

    お世話になります。 エクセルで、このようなことは出来ますか? 教えて下さい。 Aのセルの立て方向に、1と、0、が、ランダムに入れてあります。 Bのセルの立て方向に、1と、0、が、ランダムに入れてあります。 それで、Aのセルに、1が記入されていて、且つ、Bのセルには、0が記入されている 行を、一発で、検索したいのです。 Aセルに、 1 が、記入されているのを検索する方法は、簡単で、理解しております。 でも、Aセル且つBセルのある条件で、検索する方法は、私にはわかりません。。 出来る方法は、ありますか?教えて下さい。 検索できたら、例えば、128行目に、 1-0 がありました。 次の検索を押すと、次の 1-0 を探すことができたら、最高です。。 どうでしょうか?

専門家に質問してみよう