2015年5月16日土曜日

[Script][VBS]IEオブジェクトを使ってHTMLのデータを取ってくる(リストデータ)

HTML の文章を取ってきます。
今回欲しいデータは赤い部分のリストのデータです。
IE オブジェクトを操作してデータ取得を行います。

IEオブジェクトを利用する Set objIE = CreateObject("InternetExplorer.Application")

'非表示に設定
objIE.Visible = False 

'URL を指定
strURL = "http://maruton-memorandum.blogspot.jp/p/english-memorandum-grilled-foods.html"
objIE.Navigate strURL 

'ページの読み込みが終わるまでループ
Do Until objIE.Busy = False
  '200ミリ秒
  WScript.sleep(200)
Loop

msgbox objIE.document.All.tags("li")(0).innerText

Set objIE = Nothing
これで "li" 要素の 0 + 1 番目のデータが取得出来ました。

応用編
データがなくなるまでループするには On Error Resume Next と Err.Number 関数を使います。
データがなくなるまでループ
IEオブジェクトを利用するSet objIE = CreateObject("InternetExplorer.Application")

'非表示に設定
objIE.Visible = False

'URL を指定
strURL = "http://maruton-memorandum.blogspot.jp/p/english-memorandum-grilled-foods.html"
objIE.Navigate strURL

'ページの読み込みが終わるまでループ
Do Until objIE.Busy = False
  '200ミリ秒
  WScript.sleep(200)
Loop

i = 10
Do While 1
   
   msgbox  objIE.document.All.tags("li")(i).innerText
   If Err.Number <> 0 Then
      Exit Do
   End If

   i = i + 1
Loop

msgbox i

Set objIE = Nothing
innerText なら 文字列のみ だし、innerHTML なら ハイパーリンクや色指定なども含めた HTML コードでデータが取得できます。


Script のページに戻る

0 件のコメント:

コメントを投稿