【发布时间】:2019-08-24 10:44:42
【问题描述】:
我想知道如果满足另一个条件,我如何设法通过 VBA 单击 html 元素。为了清楚起见,我将向您展示一个简短的示例:
我需要分析特定季度的数据(假设我需要 Q2),并且每个季度的 html 元素都分组在同一页面中的 class=module_item (EXAMPLE) 中。
网站是https://investor.apple.com/investor-relations/default.aspx
我的代码是这样的:
Dim IE As New InternetExplorer
Dim iedoc As MSHTML.HTMLDocument
Dim element As MSHTML.IHTMLElement
Dim elements As MSHTML.IHTMLElementCollection
Dim quarter As MSHTML.IHTMLElement
Dim freport As MSHTML.IHTMLElement
With IE:
.navigate "https://investor.apple.com/investor-relations/default.aspx"
.Visible = True
End With
Do While IE.readyState <> READYSTATE_COMPLETE
Loop
Set iedoc = IE.document
Set elements = iedoc.getElementsByClassName("module_item")
Set quarter = iedoc.getElementsByClassName("module-financial_year-text")
Set freport = iedoc.getElementsByClassName("module_link module_link-statement")
For Each element In elements:
If quarter.innerText = "Q2" Then
freport.Click
End If
Debug.Print element.innerText
Next element
End Sub
你能帮帮我吗?
【问题讨论】:
标签: html vba web-scraping