【发布时间】:2020-08-11 05:52:22
【问题描述】:
我已经安装了 Selenium,一切正常,除了第一列数据没有从网站返回并发布到 Excel 中。我确定这很简单。任何人,请帮忙。
Sub PullData()
Dim driver As New WebDriver
Dim rowc, cc, columnC As Integer
rowc = 2
driver.Start "chrome"
driver.Get "https://www.cmegroup.com/trading/fx/g10/australian-dollar_quotes_settlements_options.html#optionProductId=8093&optionExpiration=8094-Q0&tradeDate=08%2F10%2F2020"
Application.Wait Now + TimeValue("00:00:10")
'Header
For Each th In driver.FindElementByClass("cmeTable").FindElementByTag("thead").FindElementsByTag("tr")
cc = 1
For Each t In th.FindElementsByTag("th")
Sheet1.Cells(1, cc).Value = t.Text
cc = cc + 1
Next t
Next th
'Body
For Each tr In driver.FindElementByClass("cmeTable").FindElementByTag("tbody").FindElementsByTag("tr")
columnC = 2
For Each td In tr.FindElementsByTag("td")
Sheet1.Cells(rowc, columnC).Value = td.Text
columnC = columnC + 1
Next td
rowc = rowc + 1
Next tr
End Sub
【问题讨论】:
-
您在 Column1 中启动标题,然后在 Column2 中启动数据。这是故意的吗?
-
是的,因为我需要为第一列留出空间,这是缺失的。我最初在第 1 列中有它,但结果仍然相同。
-
每行的第一个单元格是
th,而不是td,因此您需要先获取它,然后再遍历剩余的td元素。 -
这就是 Header 下的部分正在做的事情,它首先循环
th。标题th或正文td的第一列都不会拉。 -
不,在标题上循环的部分仅在
thead中找到th元素 - 它不会在tbody下找到包含在tr中的任何th跨度>