pagetaka

写真、PC、ネット、岡山、旅の話題をお届けします

VBA:ExcelとIEの連携06

WordPress3.0.4だと何とか記事見出しだけの抽出できるみたいです

HTMLの使い方が最新版とは異なるWordPress3.0.4です。HTML4の縛りで、1ページに「h1」要素が一つしかありませんので、「h2」を対象にしてオブジェクトとして取得。その時、親要素が「post」というクラス名であれば、「h2」の内容をテキスト表示せよ、という段取りで何とかなりそうです。

parentElement.className で親要素(今回はクラス名)取得

まずは、表示ができたスクリプトを掲載します、

Sub ieURL2()
'IEを使えるようにします
Dim ie As InternetExplorer
Set ie = CreateObject("internetexplorer.application")
'変数 aUrl を用意して、ここに西大寺電子町内会のURLを設定します。
Dim aUrl As String
aUrl = "http://b.saidaiji.org/"

'ieを呼び出し、aUrlに設定した西大寺電子町内会のURLを呼び出します。
ie.Visible = False
ie.Navigate aUrl

'読み込み完了待ちの循環
Do While ie.Busy Or ie.ReadyState < READYSTATE_COMPLETE
    DoEvents
    Debug.Print "/";
Loop
    Debug.Print vbCr


'ieからHTMLタグのh2を取得し、イミディエイト窓に表示
Dim tagHtml As Object

    'h2タグ対象で循環
    For Each tagHtml In ie.Document.body.getElementsByTagName("h2")
        '条件、そのうちclass名がpostなら以下実行
        If tagHtml.parentElement.className = "post" Then
            Debug.Print tagHtml.innertext
        '条件終了
        End If
    '循環終了
    Next
    
'終了
ie.Quit
Set ie = Nothing


End Sub