そのサーバーは XML 要求に非常にうまく応答しているようで、残りのコンテンツのために後続のページに移動する必要はありません。
Sub Get_Listings()
Dim sURL As String, iDIV As Long, htmlBDY As HTMLDocument, xmlHTTP As MSXML2.ServerXMLHTTP60
Set xmlHTTP = New MSXML2.ServerXMLHTTP60
Set htmlBDY = New HTMLDocument
'sURL = "http://web.vermont.org/Accounting?ysort=true"
sURL = "http://web.vermont.org/Dining?ysort=true"
With xmlHTTP
.Open "GET", sURL, False
.setRequestHeader "Content-Type", "text/xml"
.send
Do While .readyState <> READYSTATE_COMPLETE: DoEvents: Loop
If .Status <> 200 Then GoTo CleanUp
htmlBDY.body.innerHTML = .responseText
End With
With htmlBDY
For iDIV = 0 To (.getElementsByclassname("ListingResults_All_ENTRYTITLELEFTBOX").Length - 1)
If CBool(.getElementsByclassname("ListingResults_All_ENTRYTITLELEFTBOX")(iDIV).getElementsByTagName("a").Length) Then
Debug.Print _
.getElementsByclassname("ListingResults_All_ENTRYTITLELEFTBOX")(iDIV).getElementsByTagName("a")(0).innertext
End If
Next iDIV
End With
CleanUp:
Set htmlBDY = Nothing
Set xmlHTTP = Nothing
End Sub
Microsoft XML 6.0、Microsoft HTML Object Library、および Microsoft Internet Controls を [ツール]、[参照] に追加する必要があります。ロボットスクレーパーの使用を禁止する利用規約がそのサイトに見つからなかったため、このスニペットを提供しています。スクレイピング リクエストが繰り返されるために IP が禁止されないように注意してください。