こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

食べログの検索結果をVBAで取得したいのですが

食べログの検索結果をVBAで取得したいのですが
上手くいきません。

例えば、東京都の和食のお店の各お店のページのURLを取得しようと

Sub tset()

Dim strURL As String
Dim objIE As InternetExplorer
Dim myObj As Object

strURL = "http://tabelog.com/tokyo/rstLst/washoku/"

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate strURL

Do While objIE.Busy = True Or objIE.ReadyState <> 4
DoEvents
Loop

For Each myObj In objIE.Document.all.tags("a")
If myObj.class = "list-rst__rst-name-target js-click-rdlog" Then
Debug.Print myObj.href
End If
Next

End Sub

としたのですが、
If myObj.class = "list-rst__rst-name-target js-click-rdlog" Then
の部分で、
実行時エラー 438「オブジェクトは、このプロパティまたはメソッドをサポートしていません」
と言うエラーになります。

ソースを見ると
tlst-1-pref-0-1-0-0-0-0-0-0-0-0-0-0-0-2-1/*-http://tabelog.com/tokyo/A1317/A131710/13014641/" class="list-rst__rst-name-target js-click-rdlog" data-adtype="add_info" data-advertise="shnm" data-onclick-sitecatalyst="rstlst_shnm" data-rd-url="http://rd.tabelog.com/DEV=p/POS=shnm/RCD=13014641/TYPE=add_info/COND=rstlst-1-pref-0-1-0-0-0-0-0-0-0-0-0-0-0-2-1/*-http://tabelog.com/tokyo/A1317/A131710/13014641/">郷土料理おいどん 不動前店</a>

なので、
"list-rst__rst-name-target js-click-rdlog"
でしぼってsのURLを取得すればいいと思ったのですが
なぜエラーになるのでしょうか?

投稿日時 - 2015-12-12 07:34:56

QNo.9094432

暇なときに回答ください

質問者が選んだベストアンサー

こんにちは。

> myObj.class
ではなくて、
myObj.className
なのでは?
プロパティのあるなしで躓くようでしたら、MSHTMLに参照設定なさった方が宜しいかと。
ローカルウィンドウ、オブジェクトブラウザ、なども活用できると
困ることが減らせると思いますよ。

' ' ///
' ' ■ SHDocVw 参照設定: Microsoft Internet Controls
' ' ■ MSHTML 参照設定: Microsoft HTML Object Library
Sub Re9094432()

Dim strURL As String
Dim objIE As InternetExplorer
Dim myObj As Object ' As HTMLAnchorElement

  strURL = "http://tabelog.com/tokyo/rstLst/washoku/"

  Set objIE = CreateObject("InternetExplorer.Application")
  objIE.Visible = True
  objIE.Navigate strURL

  Do While objIE.Busy = True Or objIE.ReadyState < 3
    DoEvents
  Loop

  For Each myObj In objIE.Document.all.tags("a")
    If myObj.className = "list-rst__rst-name-target js-click-rdlog" Then
    Debug.Print myObj.href
    End If
  Next

  objIE.Quit
  Set objIE = Nothing

End Sub

' ' ///

因みに、
  For Each myObj In objIE.Document.getElementsByClassName("list-rst__rst-name-target js-click-rdlog")
    Debug.Print myObj.href
  Next
みたいに、クラス名で篩に掛けておくようにしてみてもいいかも知れませんね。

投稿日時 - 2015-12-12 10:08:41

お礼

ありがとうございました。

投稿日時 - 2015-12-20 20:15:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-
-広告-
-広告-