해당 서버는 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 개체 라이브러리 및 Microsoft 인터넷 컨트롤이 도구, 참조에 추가되어 있어야합니다. 로봇 스 크레이퍼의 사용을 금지 한 해당 사이트에서 사용 약관을 찾을 수 없으므로이 스 니펫을 제공하고 있습니다. 반복적 인 스크래핑 요청으로 인해 IP가 금지되지 않도록주의하십시오.
응답 해 주셔서 감사합니다. 나는 이것에 완전한 초심자이고 아직도 나의 방법을 주변에 배우기. 이 방법으로 XML을 사용하는 것에 익숙하지 않습니다. 내가 읽을 수있는 사이트 또는 방법을 추천 해 주시겠습니까? – Mike
@Mike - 이것은 어떤 사이트와 마찬가지로 좋은 사이트이지만 초기 검색을 [XMLHTTP] (http://stackoverflow.com/search?q=XMLHTTP)와 같은 것으로 좁혀 야합니다. 버전 특정 문제는 초기 개념을 얻은 후 여러 목적으로 재사용 할 수있는 빈 코드 모델을 작성하기 시작하면 해결 될 수 있습니다. – Jeeped