【问题标题】:VBA code unable to read the complete html within the iframeVBA 代码无法读取 iframe 中的完整 html
【发布时间】:2018-07-25 12:14:33
【问题描述】:

我正在用 excel 编写 VBA 代码以打开网页并读取网页的 DOM 资源管理器中的所有 HTML 内容并将其存储在 excel 的单元格中。

我在下面粘贴我的代码;此代码跳过主 HTML 的 iframe 中的 HTML 内容。 (基本上它会跳过主 HTML 中的辅助 HTML)。但我需要从 DOM 资源管理器中查看完整的 HTML。有人可以在这里帮助我吗?

Sub WebPage_SourceCode()
    Dim IEapp As InternetExplorer
    Dim WebUrl As String
    Dim Doc As HTMLDocument
    Dim Elements As IHTMLElementCollection

    Set IEapp = New InternetExplorer
    WebUrl = "https://abcd.com/"

    With IEapp
        .Silent = True
        .Visible = True
        .Navigate WebUrl

        Do While .Busy = True Or .READYSTATE <> 4
            DoEvents
        Loop
    End With

        pagesource = IEapp.Document.body.innerHTML
        Cells(1, 1) = pagesource

 End Sub

我也尝试通过使用下面的代码获取每个 iframe 的元素并将其存储在不同的单元格中,但是读取 iframe 标记后的 HTML 中的元素。

Set Doc = IEapp.Document
        Set Elements = Doc.getElementsByTagName("iframe")          

        i = 1
        For Each element In Elements
                Cells(i, 1) = element.className
                Cells(i, 2) = element.innerHTML
                Cells(i, 3) = element.outerHTML
                i = i + 1                    
        Next

下面是 HTML 部分的链接。 VBA 会跳过 iframe 中的 HTML(以红色边框突出显示)。 VBA 读取 iframe 之前和之后的任何代码。

Sample of Source HTML Code

【问题讨论】:

  • 请使用sn-p工具添加html代码。不是图片。由于我无法从该图像中复制我的答案很短。
  • 我的问题是,您为什么要尝试将文档读取到单元格中?您已经可以访问 DOM,难道您不能直接从页面中检索您需要的任何内容吗?
  • @Zac 好问题。哈哈。此外,他们可能会遇到相同的原产地政策。不知道原始网址很难说。
  • @QHarr : 好声音!

标签: html excel vba dom iframe


【解决方案1】:

文档是从不同的 src 加载的。尝试使用XHR/IE 到那个 src 链接并获取响应文本。

src

【讨论】:

  • 感谢@QHarr 的提示。我已经拿起了这个 src 并为这个 src 明确地编写了一个代码,它按照我的要求工作得非常好。非常感谢您的完美解释。 :)
猜你喜欢
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
  • 2022-11-15
  • 1970-01-01
  • 1970-01-01
  • 2014-02-23
相关资源
最近更新 更多