Excelでもウェブスクレイピングしたい
Visual Basic Editorを開く。
メニューバーの「ツール」を押して「参照設定」を選択。
そ以下の2つにチェックを入れる。
・Microsoft HTML Object Library
・Microsoft Internet Controls
以下をVBEに貼り付け、実行する。
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As LongPtr)
Sub webscraping()
Dim objIE As InternetExplorer
Set objIE = New InternetExplorer
objIE.Visible = True
objIE.navigate ("https://目的のhtml")
'表示されるまで待つ
Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
DoEvents
Loop
Dim htmlDoc As HTMLDocument
Set htmlDoc = objIE.document
Dim elements As IHTMLElementCollection
Set elements = htmlDoc.getElementsByClassName("○○")
'目的に合わせて、上を変更する。
'getElementById("○○") ← id = ○○ のところ
'getElementsByClassName("○○") ← class = ○○ のところ
'getElementsByName("○○") ← name = ○○ のところ
'getElementsByTagName("○○") ← "h1","h2","p","span","title"
'elementsは、リストなので以下のように番号指定する
Cells(i, 1).Value = elements(1).innerText
Cells(i, 2).Value = elements(2).innerText
'innerTextを目的に合わせて変更する。
'Click
'innerHTML
'for loopを使う場合は、サーバに負荷をかけないために以下
'Sleep 5000
End Sub