如何使用 Excel VBA 获取 iframe 数据

How to fetch iframe data using Excel VBA

我在 Excel VBA 中使用下面提到的代码用于 IE navigation.I 从 iframe 获取数据时遇到以下错误。

错误详情:

Object does not support this property or method


Option Explicit

Public Sub Cgg_Click()
    Dim Ie As New InternetExplorer
    Dim WebURL
    Dim Docx As HTMLDocument
    Dim productDesc
    Dim productTitle
    Dim price
    Dim RcdNum
    
    Ie.Visible = True
    WebURL = "https://www.google.com/maps/place/parlour+beauty+parlour+beauty/@40.7314166,-74.13182,11z/data=!4m8!1m2!2m1!1sParlour+NY!3m4!1s0x89c2599bd4c1d2e7:0x20873676f6334189!8m2!3d40.7314166!4d-73.9917443"
    Ie.Navigate2 WebURL
    
    Do Until Ie.readyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    
    Application.Wait (Now + TimeValue("00:00:25"))
    
    For N = 0 To Ie.document.getElementsByClassName("section-subheader-header GLOBAL__gm2-subtitle-alt-1").Length - 1
                       
        If Ie.document.getElementsByClassName("section-subheader-header GLOBAL__gm2-subtitle-alt-1").Item(N).innerText = "Web results" Then
            Ie.document.getElementsByClassName("section-subheader-header GLOBAL__gm2-subtitle-alt-1").Item(N).ScrollIntoView (False)
        End If
                    
    Next N
    
    Application.Wait (Now + TimeValue("00:00:25"))
         
    Set Docx = Ie.document
    
    productDesc = Docx.Window.frames("section-iframe-iframe").contentWindow.document.getElementsByClassName("trex")(0).outerHTML

End Sub

这里是 HTML:


请帮助解决这个错误。

我想提取“trex”类名HTML从上面包含[=36​​=]

谢谢。

您可以将提取“trex”元素的行更改为以下之一,它们都可以正常工作:

  1. 先使用getElementsbyTagName方法获取iframe,然后根据Iframe.contentDocument属性通过class名称到达元素:

    productDesc = Docx.getElementsByTagName("iframe")(0).contentDocument.getElementsByClassName("trex")(0).outerHTML
    
  2. 使用querySelector方法通过class获取iframe,然后使用同上方法到达元素:

    productDesc = Docx.querySelector(".section-iframe-iframe").contentDocument.getElementsByClassName("trex")(0).outerHTML