目的: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
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。