【发布时间】:2019-11-04 01:51:01
【问题描述】:
我正在尝试从一个网站中提取最高可用历史价格,当您向下滚动页面时,该网站会将更多信息加载到表格中。我目前使用的这段代码只会提取前 100 行。
非常感谢您的帮助。
谢谢。
Sub pullhistoricalprice()
Dim xmlpage As New MSXML2.XMLHTTP60
Dim htmldoc As New MSHTML.HTMLDocument
Dim objTable As Object
Dim lRow As Long
Dim lngTable As Long
Dim lngRow As Long
Dim lngCol As Long
Dim ActRw As Long
xmlpage.Open "GET", "https://finance.yahoo.com/quote/AAPL/history?period1=345400200&period2=1561046400&interval=1d&filter=history&frequency=1d", False
xmlpage.send
htmldoc.body.innerHTML = xmlpage.responseText
htmldoc.parentWindow.scrollBy 0, 100
Application.Wait Now + TimeValue("00:00:03")
With htmldoc.body
Set objTable = .getElementsByTagName("table")
For lngTable = 2 To objTable.Length - 2
For lngRow = 0 To objTable(lngTable).Rows.Length - 1
For lngCol = 0 To objTable(lngTable).Rows(lngRow).Cells.Length - 1
ThisWorkbook.Sheets("Sheet1").Cells(ActRw + lngRow + 1, lngCol + 1) = objTable(lngTable).Rows(lngRow).Cells(lngCol).innerText
Next lngCol
Next lngRow
ActRw = ActRw + objTable(lngTable).Rows.Length + 1
Next lngTable
End With
End Sub
【问题讨论】:
-
它来自表格的哪一列?此外,您在代码中提取了多个值,而 max 应该是一个值,不是吗?
标签: html excel vba web-scraping