【发布时间】:2016-08-31 00:07:31
【问题描述】:
我试图通过给出关键字“AABDG27”从网页中获取一些数据,然后单击搜索按钮,最后收集搜索结果的最后一项,即市场数据类别 = ESZ。这是一个开放的网站,因此可以测试以下代码。下面是我的代码。它在 Set mydata = IE.Document.getElements.... 行中给出错误。
Sub keyword_search_result()
Dim i As Long
Dim IE As Object
Dim objElement As Object
Dim objCollection As Object
Dim mydata As Object
Dim myval As String
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = False
IE.Navigate "http://www.platts.com/symbol-page-directories/symbol-search"
Do
DoEvents
Loop Until IE.ReadyState = 3
Do
DoEvents
Loop Until IE.ReadyState = 4
IE.Document.getElementById("ctl00_ctl00_contentBody_contentMain_txtSearchSymbol").Value = "AABDG27"
IE.Document.getElementById("ctl00_ctl00_contentBody_contentMain_btnSearch").Click
Do
DoEvents
Loop Until IE.ReadyState = 4
Set mydata = IE.Document.getElementsByClassName("divCellBottomMiddle")(0).getElementsByTagName("br")
i = 0
For Each objCollection In mydata
myval = mydata(i).PreviousSibling.wholeText
'Debug.Print i&; " "; myval
i = i + 1
If i = 11 Then
'this is the case when myval string will come as "ESZ"
'but with lot of space
Sheets("Sheet1").Range("A1") = Trim(Right(myval, 10))
End If
Next objCollection
IE.Quit
Set IE = Nothing
End Sub
那么应该改变什么,有没有更好的方法来使用 winhttprequest/XMLHTTP 或类似的东西?
【问题讨论】:
标签: html vba internet-explorer