VBA代码无法读取iframe中的完整html

时间:2018-07-25 12:14:33

标签: html excel vba dom iframe

我正在用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

1 个答案:

答案 0 :(得分:0)

文档是从其他src加载的。尝试使用XHR / IE  转到该src链接并获取响应文本。

src

Image