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

VBA使用MSXML2.XMLHTTP.6.0或Selenium实现等待指定文本出现

Windows 11替代IE的VBA动态页面抓取实现方案

首先明确:目标站点为JS动态渲染页面,MSXML2.XMLHTTP.6.0仅能获取服务端返回的初始静态源码,无法等待客户端JS执行完成加载动态内容,因此优先提供你已安装的Selenium适配方案,逻辑完全对齐你原有IE代码的等待规则:


前置配置要求

  • 已安装与你的浏览器版本匹配的Selenium驱动(Chrome/Edge均可),驱动路径已添加到系统环境变量
  • VBA编辑器中已引用Selenium类型库

完整实现代码

Dim t As Date
Dim fTextFound As Boolean
Const MAX_WAIT_SEC As Long = 3 '<==可根据需要调整等待时长
Dim myUrl As String
myUrl = "https://finbox.com/NASDAQGS:AMZN/models/dcf-growth-exit-10yr"

' 初始化Selenium驱动,这里以Chrome为例,用Edge的话替换为New EdgeDriver
Dim driver As New ChromeDriver
driver.Get myUrl
' 可设置是否显示浏览器窗口,True为显示,False为后台运行
driver.Visible = True

t = Timer
Do
    DoEvents
    On Error Resume Next
    ' 获取当前页面完整渲染后的HTML源码
    sPageHTML = LCase(driver.PageSource)
    If InStr(sPageHTML, "fair value") > 0 Then fTextFound = True
    If Timer - t > MAX_WAIT_SEC Then Exit Do
    On Error GoTo 0
Loop While fTextFound = False

If fTextFound = True Then
    ' 此处写入你后续的提取逻辑
    Debug.Print "已找到目标文本,开始执行数据提取"
End If

' 任务完成后关闭驱动
driver.Quit
Set driver = Nothing

其他方案说明

如果你要使用HTTP请求类组件实现,需要搭配无头浏览器工具(如Chromium无头模式)处理JS渲染,配置复杂度远高于Selenium方案,不推荐使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:15:04