【问题标题】:Web Browser is getting the same HTML different in different machinesWeb 浏览器在不同的机器上获得相同的 HTML
【发布时间】:2015-07-24 02:30:06
【问题描述】:

我有一个控制台应用程序,我用它从网站下载 HTML 并将这个 HTML 与我在 blob 中的另一个进行比较。为此,我使用来自Windows FormsWebBrowser 组件。当我在我的机器上运行应用程序时一切正常,但是当我迁移控制台应用程序以在其他机器上运行时,在运行时下载的HTML 在某些方面是不同。例如: 在blob 的基础HTML 中,element 是这样的:

<FORM><INPUT id=ni value=Test type=hidden name=ni>

如果我在我的机器上运行,HTML 元素在浏览器下载的文档中是等效的,但在另一台机器上该元素是这样的:

<FORM><INPUT id=ni type=hidden value=Test name=ni>

你可以看到属性的顺序是不同的。这对我来说无关紧要,但我想知道如果两台机器上运行的是同一个程序,为什么会发生这种情况?

代码:

 private void OnDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
 { 
     var html = _browser.Document.Body.InnerHtml;
     //This is getting different.
 }

【问题讨论】:

  • 您是否在不同的机器上使用相同的浏览器?不同的浏览器会产生不同的 HTML 输出。
  • @MC10 我不知道,因为我只是在没有指定浏览器的情况下实例化 WebBroser 组件。我如何检查它?
  • 糟糕,没关系。你没有使用浏览器。至于为什么在不同的机器上使用WebBrowser控件时会有所不同,我不确定。也许它以不同的方式呈现它。这个链接可能有一些很好的信息:blogs.msdn.com/b/patricka/archive/2015/01/12/…

标签: c# html .net winforms


【解决方案1】:

.Net 中的 WebBrowser 使用机器上安装的 IE 版本。根据浏览器的用户代理,您获得的页面可能会有所不同。只需在两台机器上打开 IE 并查看页面的源代码以确认不是您的代码导致了差异。

【讨论】:

  • 你明白了。我的机器运行IE11,另一台运行IE8。实际上最好的办法是将IE8更新到11?
  • 您可能只想尝试使用浏览器以外的其他工具。仍然可能有些奇怪,但试试这个:stackoverflow.com/questions/599275/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
  • 2018-05-11
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
  • 2018-09-06
相关资源
最近更新 更多