VBA를 사용하여 웹 페이지로 이동하고 정보를 입력하고 단추를 클릭하고 다음 페이지로 이동 한 다음 결과 정보 일부를 수집하려고합니다. . 여기에 문제가 있습니다 : 코드는 처음 몇 단계를 거치지 만 두 번째 페이지의 html을 구문 분석하려고하면 첫 페이지에서 HTML을 반환합니다. 어떤 이유로 올바른 페이지가 원하는 정보와 함께 화면에 표시 되더라도 WebBrowser.Document의 HTML은 새 화면로드로 변경되지 않습니다. 나는 I.E.를 강요하려고 노력했다. 페이지가로드 될 때까지 기다리는 것이지만 아무런 차이가없는 것처럼 보입니다. 코드는 다음과 같습니다.VBA : 페이지에서 HTML 데이터 가져 오기
Sub SnowLoad(Latitude As String, Longitude As String, State As String)
Dim MyHTML_Element As IHTMLElement
Dim HTMLDoc As HTMLDocument
Dim MyURL As String
Dim SnowTag As String
Dim SnowPos As Long
SnowTag = "Load"
On Error GoTo Err_Clear
MyURL = "http://snowload.atcouncil.org/"
''open new explorer
Dim MyBrowser As New InternetExplorer
MyBrowser.Silent = True
''navigate to page
MyBrowser.navigate MyURL
MyBrowser.Visible = True
''wait until ready
Do
DoEvents
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser.document
HTMLDoc.all.optionCoordinate_LATLON.Click
HTMLDoc.all.coordinate_lat.Value = Latitude
HTMLDoc.all.coordinate_lon.Value = Longitude
Set elems = HTMLDoc.getElementsByTagName("button")
For Each e In elems
If (e.getAttribute("class") = "btn") Then
e.Click
Exit For
End If
Next e
Do
DoEvents
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE
Set elems = HTMLDoc.getElementsByTagName("p")
For Each e In elems
Debug.Print e.innerHTML
If InStr(e.innerHTML, SnowTag) Then
SnowPos = InStr(e.innerHTML, SnowTag)
Range("SnowPosition").Value = SnowPos
Exit For
End If
Next e
Err_Clear:
If Err <> 0 Then
Err.Clear
Resume Next
End If
End Sub
저는 제 2 페이지에 나와있는 정보를 얻는 방법을 알지 못합니다. Google 검색 결과에 대한 답변이 없거나 비슷한 문제가있는 것으로 보입니다. .navigate에 대한 실제 호출 대신 탐색 버튼을 사용하는 것과 관련 될 수 있습니까?
우리가 HTML을 볼 수 있을까요? 그것은 두 가지 중 하나처럼 들리지만, 페이지가 실제로 코드를로드하더라도 실제로로드되지 않습니다. 새 페이지가 프레임/iFrame에 있습니다. 또는 웹 사이트 또는 HTML을 보는 것이 도움이 될만한 다른 것. –
제대로 서식이 지정된 HTML을 원래 게시물로 가져 오는 방법을 알아낼 수 없습니다 (붙일 때 난파선이됩니다). 여기에 웹 사이트가 있습니다 : [Snow Link] (http://snowload.atcouncil.org/index.php/component/vcpsnowload/item) 나는 HTML에 익숙하지 않아서 잘 모르겠다. 그것의 무엇이든은 주목할 만하다. – Tsnorthern
특정 지역에 대한 강설량의 psf를 반환하려고합니까? –