VBAでWEBスクレイピングの第4弾です。
前回記事はこちら
Webスクレイピングによるデータの取得、今回はいよいよ開発に入ります。
Contents
前回のおさらい
前回は1番~3番の「設計」工程について説明しました。
今回は4番の「開発」工程を進めていきます。
ソースコード
実際に動作するソースコードは以下の通りです。
Option Explicit
Function getPrice(url As String)
'■1.前処理
'IEのオブジェクトを作成
Dim ie As InternetExplorer
Set ie = New InternetExplorer
'IEが開かないように設定
ie.Visible = False
'■2.本処理
'指定のURLを開く
ie.Navigate (url)
'ページの読み込みが完了するまで待つ
Do While ie.readyState <> READYSTATE_COMPLETE
'OSに制御を戻す
DoEvents
Loop
'価格を取得する
Dim price As String
price = ie.Document.getElementById("priceblock_ourprice").innerText
'■3.後処理
ie.Quit
Set ie = Nothing
getPrice = price
End Function
この中で、データを取得しているのは以下の1行です。
price = ie.Document.getElementById("priceblock_ourprice").innerText
この1行が何をしているのかを説明していきましょう。
- ie
Webページを取得するためのアプリケーション(IE)です。
- Document
IEで取得したWebページです。
- getElementById(“priceblock_ourprice”)
Webページから、「id=”priceblock_ourprice”を持つ要素(Element)」を取得しています。
- innerText
取得した要素(Element)の「内部テキスト(innerText)」を取得しています。
「IE⇒Webページ⇒要素⇒内部テキスト」と、徐々に絞り込まれていくイメージです。
他のWebサイトもスクレイピングできる
Webスクレイピングの基本的な流れは以上となります。
「データの取得方法」を変えることで様々なデータを取得できるようになります。
次回は「データの取得方法」について、他にどのような方法があるのかを説明していきます。
コメント