【发布时间】:2015-10-21 22:05:43
【问题描述】:
我正在尝试从这个网站上的这个表中获取一行数据:http://www.nasdaq.com/symbol/neog/financials?query=balance-sheet
现在我可以设法使用
获得“总负债”行doc.getelementsbyclassname("net")(3).innertext
但我不知道如何获取任何其他数据行,例如普通股。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = Range("bscode").Row And _
Target.Column = Range("bscode").Column Then
Dim IE As New InternetExplorer
IE.Visible = True
IE.navigate "http://www.nasdaq.com/symbol/" & Range("bscode").Value & "/financials?query=balance-sheet&data=quarterly"
Do
DoEvents
Loop Until IE.readyState = READYSTATE_COMPLETE
Dim Doc As HTMLDocument
Set Doc = IE.document
Dim sD As String
sD = Doc.getElementsByTagName("tr")(8).innerText
MsgBox sD
Dim aD As Variant
aD = Split(sD, "$")
Range("bs").Value = aD(1)
Range("ba").Value = aD(2)
Range("bb").Value = aD(3)
Range("bc").Value = aD(4)
End If
End Sub
如果有帮助,我有要抓取的 HTML 源代码和突出显示的 tr。
问题是查找表格行数据的方法。有人可以向我解释如何获取其他数据行吗?将不胜感激!
【问题讨论】:
-
JPs IE Automation Tips 极大地帮助了探索如何在 VBA 中从网页中抓取数据。里面有循环遍历元素的代码,然后你可以使用
debug.print来确定你需要哪一个。 -
@ScottHoltzman 您提供的链接不再有效。还有其他来源吗?
-
@RickHenderson - 是的,该网站已被删除。如果你搜索一下,网上有很多资源。
标签: excel web-scraping html-tableextract vba