我正试图抓住一张桌子,并且已经获得了桌面的所有HTML,但之后却被卡住了。
Sub clickFormButton()
Dim oHtml As HTMLDocument
Dim oElement As IHTMLElement
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.marketwatch.com/tools/quotes/lookup.asp?siteID=mktw&Lookup=agnico-eagle+mines&Country=us&Type=All", False
.send
oHtml.body.innerHTML = .responseText
End With
Dim wsTarget As Worksheet
Dim i As Integer
i = 1
Set wsTarget = ActiveWorkbook.Worksheets("Sheet1")
For Each oElement In oHtml.getElementsByClassName("results")
wsTarget.Range("A" & i) = oElement.Children(0).innerText
i = i + 1
Next
End Sub`
这将返回我想要的数据,但是它会在一个单元格中返回所有数据。我希望通过遵循TR和TD标记将刮下的数据格式化为类似的HTML格式表。
感谢您的帮助!
答案 0 :(得分:0)
我会使用split
函数执行此任务。
代码段
split(oElement.Children(0).innerText, "<\TR>")
将返回一个字符串数组,其中每个元素都是HTML表格中的一行。从那里,您可以使用"<\TD>"
替换"<\TR>"
来运行类似的命令,将每行拆分为单个单元格。从那里你可能想要清理结果单元格中无关的<TD>
和<TR>
。