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

Categories:

category