記事タイトルがh1の時(新しいWP)の対象タグ参照方法
WPのバージョンが新しくなると、記事見出しは「h1」タグが使われています。そのため、前回までの記事に書いた方法だとうまくいきません。
なお、事前に、ie、HTMLなどの参照設定忘れないようにしてくださいね。
取得済みのタグをclassNameで対象かどうか判定
新しいWPの場合、記事見出しにはクラス(HTMLの)が当てられています。そのため、取得したh2タグのClass名が「entry-tytle」であれば作業を行う、というように設定しました。
Sub ieURL3() 'IEを使えるようにします Dim ie As InternetExplorer Set ie = CreateObject("internetexplorer.application") '変数 aUrlなどを用意 Dim aUrl As String '対象URL Dim htText As String '対象HTMLタグ名 Dim clName As String '対象class名 aUrl = "http://c.saidaiji.org/" htText = "h1" clName = "entry-title" 'ie呼び出し ie.Visible = False ie.Navigate aUrl '読み込み完了待ちの循環 Do While ie.Busy Or ie.ReadyState < READYSTATE_COMPLETE DoEvents Debug.Print "/"; Loop Debug.Print vbCr 'ieからHTMLタグを取得し、イミディエイト窓にテキスト表示 Dim tagHtml As Object 'タグ対象で循環 For Each tagHtml In ie.Document.body.getElementsByTagName(htText) '条件、そのうちclass名がpostなら以下実行 If tagHtml.className = clName Then Debug.Print tagHtml.innertext '条件終了 End If '循環終了 Next '終了 ie.Quit Set ie = Nothing End Sub
この結果、次のような流れを作れば、Excelからie経由でWordPress記事更新状況を判断できるはずです。結構いい加減ですけど。
- Excelのセルから対象URLを取得(すべてWordPress)
- ie経由で対象URLを読みに行く
- WordPressのソースから、h1、h2のいずれをキーにするか判定
- 記事見出しを取得しExcelセルに保存
- 前回取得の内容と比較し、前回から記事更新があったかどうか判定する
と、およそ次のような流れです。
もっとも、判定に使うのが「記事見出し」だけですから、不十分です。しかし、記事そのものや、タイムスタンプなどは、その先にあるわけですから、必要なら追加するというくらいで、とりあえず簡単に試してみる、ということで、ひとまず良いのかな~などと…。