🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

1653閲覧

【エクセルVBAでIE操作】ページャーをめくって複数ページからデータを取得することができません

Sugisan

総合スコア14

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2020/12/22 02:51

目的:Google検索結果の「1ページ目から5ページ目」までの記事タイトルとURLをExcelで取得したい。
結果:検索結果の1ページ目しかデータが取得できません。

主に下記のサイトを参考にタイトルの作業を実行しようとしました。
【参考】
https://tonari-it.com/vba-ie-pagenation/#toc2

なぜ、2ページ目以降の検索結果が反映されないのか、ご教示いただけますと幸いです。
宜しくお願いいたします。

◆コード

vba

1Option Explicit 2Dim ie As New SHDocVw.InternetExplorer 3 4Sub goo_srch_scrap_upto5p() 5 ie.Visible = True 6 ie.navigate "google.com" 7 Call waitie(ie) 8 9 'Googleを検索 10 Dim doc As HTMLDocument: Set doc = ie.document 11 Dim keyword As String: keyword = "〇〇〇(検索キーワード)" 12 doc.getElementById("q").Value = keyword 13 doc.forms(0).submit 14 Application.Wait [Now()] + TimeValue("00:00:02") 15 16 17 '5ページ目まで 18 Dim page As Long 19 For page = 1 To 5 20 Call waitie(ie) 21 Set doc = ie.document 22 23 Dim el As HTMLHeadElement 24 Dim i As Long: i = 0 25 26 For Each el In doc.getElementById("rso").getElementsByTagName("h3") 27 Dim anchor As HTMLAnchorElement: Set anchor = el.Children(0) 28 29 Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("data") 30 'ハイパーリンク化 31 ws.Hyperlinks.Add anchor:=ws.Cells(i + 3, 1), _ 32 TextToDisplay:=anchor.innerText, _ 33 Address:=anchor.parentElement.parentElement.href 34 i = i + 1 35 Next el 36 37 '次のページへ進むメソッド 38 Dim span As HTMLSpanElement 39 For Each span In doc.getElementsByClassName("d6cvqb") 40 If InStr(span.innerText, "次へ") > 0 Then 41 span.Click 42 Call waitie(ie) 43 End If 44 Next span 45 46 Next page 47 48 ws.Cells(1, 1).Value = ie.document.getElementsByTagName("h2")(0).innerText 49 50 ie.Quit 51 52End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Googleで禁止されています
ヘルプ

Google の利用規約では、自動化されたクエリはその種類にかかわらず、Google からの明示的な許可を事前に得ることなく Google のシステムに送信することが禁止されています。リソースの浪費につながる自動化されたクエリの送信には、WebPosition Gold などのソフトウェアを使って自動化されたクエリを Google に送信し、さまざまなクエリによる Google 検索結果におけるウェブサイトやウェブページのランキングを調べようとする行為が含まれます。ランキングの確認だけでなく、許可を得ていない他の種類の Google への自動アクセスも、ウェブマスター向けガイドラインと利用規約で違反と見なされます。

投稿2020/12/22 03:02

radames1000

総合スコア1925

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問