역사적인 날씨 데이터를 가져 오려고합니다. 원래는 표준 HTML 요소 등을 사용하여 기본 웹 페이지에서 웹 데이터를 긁어 내려고했으나, URL에 "? format = 1"을 추가하면 브라우저가 데이터 표로 구문 분석하기가 훨씬 쉬운 CSV를 표시합니다 ...XMLHTTP가 상위 웹 페이지에서 HTML을 가져 오는 중
그러나 아직 IE 브라우저를 사용하고 있는데, 많은 데이터를 가져 오기 위해 XMLHTTP
개체를 사용하여 데이터를 빠르게 가져 오는 것을 살펴보기 시작했습니다.이 문제는 URL의 끝에 "? format = 1"을 추가하면 좋은 날씬한 CSV,하지만 XMLHTTP를 사용하면 원래 페이지의 HTML을 가져 오지 CSV가 아닙니다!
XMLHTTP가 요청을 보낼 때 내가 좋아하는 것처럼 보입니다. 내가 지정한 csv가 아니라면 'parent'사이트에서 응답이 돌아옵니다. URL에서 HTML을 가져 오는 것으로 나타났습니다. .html로 끝나는 것처럼 .html에서 자르면 응답은 .html 페이지가 아닌 CSV 페이지가 아닌 이유입니다. 그래서 URL 프로토콜을 조사하여 XMLHTTP가 요청하도록하는 방법이 있는지 알아 보았습니다. 나는 꽤 멀리 내 요소 중 오전 아무것도 찾을 수있는 CSV의 URL하지만 ..
코드 당신이 나에게 줄 수있는 모든 도움을 주셔서 감사합니다 below- :
Public Sub downloadWebDataToCSV(URL As String)
Dim ADOStream As ADODB.Stream
Dim XMLHTTP As MSXML2.XMLHTTP60
Set XMLHTTP = New MSXML2.XMLHTTP60
XMLHTTP.Open "GET", URL, False
XMLHTTP.send
If XMLHTTP.Status = 200 Then
Set ADOStream = New ADODB.Stream
With ADOStream
.Open
.Type = adTypeBinary
.Write XMLHTTP.responseBody
.SaveToFile "C:\datafile.csv", 2
.Close
End With
End If
End Sub
을 여기에 부모와 CSV URL을뿐만 아니라 경우 그 helps-
Mainpage은 다음과 같습니다 https://www.wunderground.com/history/airport/KDAL/2003/10/15/DailyHistory.html CSV : 사전에 https://www.wunderground.com/history/airport/KDAL/2003/10/15/DailyHistory.html?format=1
감사합니다, TheSilkCode
Hey @ Jake- 제 문제는 CSV의 HTML에 액세스 할 수 없다는 것입니다 ... XMLHTTP는 URL과 함께 제공되는 경우에도 CSV 페이지의 HTML을 반환하지 않지만 대신.html 페이지의 HTML은 구문 분석하기가 훨씬 어렵습니다. 나는 진정으로 막 다른 골목에 올랐다면 다시 돌아갈 수있는 IE 브라우저를 사용하여 가져 왔습니다.하지만 XMLHTTP를 훨씬 더 빨리 사용할 수 있기를 바랍니다. ... – TheSilkCode