You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VBA抓取雅虎财经AAPL期权的到期时间下拉菜单?

VBA抓取雅虎财经AAPL期权到期时间下拉菜单

以下是直接可用的VBA代码,用于抓取雅虎财经AAPL期权页面的到期时间下拉选项:

Sub GetAAPLOptionExpirations()
    Dim ie As Object
    Dim doc As Object
    Dim expirationDropdown As Object
    Dim optionItem As Object
    
    ' 初始化IE对象
    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True ' 调试时可见,发布可改为False
    
    ' 访问目标页面
    ie.Navigate "https://finance.yahoo.com/quote/AAPL/options?p=AAPL"
    
    ' 等待页面完全加载
    Do While ie.Busy Or ie.ReadyState <> 4
        DoEvents
    Loop
    ' 额外等待3秒确保动态内容加载完成
    Application.Wait Now + TimeValue("00:00:03")
    
    ' 获取页面文档对象
    Set doc = ie.Document
    
    ' 定位到期时间下拉菜单(通过CSS选择器,需根据页面实际结构调整)
    Set expirationDropdown = doc.querySelector("#Col1-1-OptionContracts-Proxy > section > div.Optns-historical-date-container > div > select")
    
    ' 遍历并输出所有到期时间选项
    If Not expirationDropdown Is Nothing Then
        Debug.Print "=== AAPL期权到期时间 ==="
        For Each optionItem In expirationDropdown.Options
            If Trim(optionItem.Text) <> "" Then
                Debug.Print optionItem.Text
            End If
        Next optionItem
    Else
        Debug.Print "错误:未找到到期时间下拉菜单元素"
    End If
    
    ' 清理资源
    ie.Quit
    Set ie = Nothing
    Set doc = Nothing
    Set expirationDropdown = Nothing
End Sub

关键说明:

  • 元素定位:页面元素可能随雅虎财经更新而变化,若代码报错找不到元素,打开浏览器开发者工具(F12),找到到期时间下拉框的HTML元素,替换querySelector中的CSS选择器即可。
  • 加载等待:添加额外3秒等待是为了确保页面动态生成的内容加载完成,若网络较慢可适当延长时间。
  • 运行环境:代码依赖IE浏览器,Office 365用户若遇到兼容性问题,可调整IE安全设置,或改用Edge WebDriver(需额外配置)。

内容的提问来源于stack exchange,提问作者Jialing Chen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 23:20:39