【问题标题】:How to get the source of the page loaded in IWebBrowser2?如何获取在 IWebBrowser2 中加载的页面的来源?
【发布时间】:2014-05-03 17:06:02
【问题描述】:

从 Internet Explorer 中的 BHO(浏览器帮助对象),当我有 IWebBrowser2 接口时,如何获取当前加载到 Web 浏览器中的页面的完整源代码?

我是否必须从它所在的 url 再次下载它,还是有办法获取 Internet Explorer 下载并用于呈现页面的副本?

我尝试获取当前文档的 html 元素的 outerHTML,但它返回了已经预处理的源代码。我需要以您在 Internet Explorer 中查看“查看源代码”时看到的相同形式获取它。

感谢您提供任何有用的信息!!!

【问题讨论】:

    标签: c++ internet-explorer bho


    【解决方案1】:

    您可以在浏览器的Document 属性中查询IPersistStreamIPersistFile,然后调用其Save() 方法。但是在向浏览器查询其 HTML 时,您可能会得到 已处理 HTML,其中可能包括脚本中的 DOM 更改。

    要获得原始 HTML,您应该自己直接从源 URL 下载它,或者至少从浏览器的本地缓存中提取文件。

    【讨论】:

    • 我最终从源网址下载了该页面。知道 IE 隐藏在某个地方(单击查看页面源时它不会再次下载),再次下载页面感觉有点愚蠢,但我没有时间寻找它。
    • 这就是为什么我建议您在访问服务器之前从浏览器的缓存中加载文件。例如,URLDownloadToFile() 首先检查缓存。或者您可以使用GetUrlCacheEntryInfo() 获取缓存 URL 的本地文件名。
    猜你喜欢
    • 2016-05-25
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 2015-02-25
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多