【问题标题】:.net WebBrowser control modifies html? [closed].net WebBrowser 控件修改html? [关闭]
【发布时间】:2012-07-14 11:09:38
【问题描述】:

我正在抓取网页,当我在带有 IE 8 的 Windows XP 机器上运行我的抓取应用程序时(它是 Windows XP 支持的最大值),它从 webBrowser.Body.OuterHtml 返回的 HTML 源代码与在 Windows 7 上运行时不同用IE9。有谁知道如何从 webbrowser 控件中获取未修改的原始 html ???我知道 IE 会修改 HTML,所以我想知道如何获取从 Web 服务器返回的原始 html。这很烦人,因为我在我的 Windows 7 开发盒上编写了刮板,然后当我将它托管在 Windows XP 盒上时它就不起作用了。如果您回答不要告诉我使用 WebClient 并下载页面,我想轻松支持浏览页面,而不必担心由 webbrowser 控件处理的其他小网页内容。我使用网络浏览器控件是有原因的。 webBrowser.DocumentText 是返回原始 html 还是这个仍然被修改的 html 是 IE?

【问题讨论】:

  • 您的问题似乎是“我知道如何使用 WebClient 从服务器下载页面,但我不想这样做。请告诉我一种使用 WebBrowser 的方法,即旨在向用户显示网页,而不是为程序员提供原始 HTML 以从服务器获取原始 HTML。”为什么厌恶 WebClient?
  • 我正在使用 webbrowser 控件来处理 cookie、会话,因此我可以填写输入字段并使用 POST 提交,还可以更轻松地处理分页链接等。

标签: c# .net internet-explorer webbrowser-control


【解决方案1】:

从根本上说,您有两个相反的担忧:

  • 您想获得原始源代码,并且浏览器可以做的任何事情都未修改
  • 您想让浏览器做一些事情,因为您显然觉得它很有用。 (你说你使用WebBrowser“是有原因的”,但实际上你并没有告诉我们这个原因是什么。)

如果您真的出于某种原因需要使用WebBrowser,您可能需要两次获取每个页面:一次在浏览器中(以便它可以执行您需要的任何操作)和一次使用WebClient(这样您就可以在没有任何混乱的情况下获得响应)。

在浏览器控件中禁用脚本也可能会完成您需要的所有操作 - 但由于您没有首先向我们说明使用浏览器控件的原因,这可能无济于事...

【讨论】:

    猜你喜欢
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2021-02-25
    相关资源
    最近更新 更多