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