使用c#获取嵌入式html文档

时间:2017-12-09 22:48:02

标签: c# .net windows winforms

我正在开发一个WinForm应用程序,可以自动执行内部网站上的某些任务" xyz.org",当我在网站上运行IE或chrome调试器时,我得到以下代码:

<!DOCTYPE html>
<html>....
<body>
  <outer code>....
  <div id="embedded">
  <iframe name="frame1" id="frame1" src="https://qwe.org" border="0" frameborder="0" style="height: 3675px;">
     <!DOCTYPE html>
     <html>
       <inner code>....
     </html>
  </iframe>
  </div>
</body>
</html>

所以网站xyz有一些脚本最终会调用另一个网站qwe。 我正在使用c#,我正在使用webBrowser控件,我正在尝试解析&#34; FULL&#34; xyz&amp;在IE / Chrome调试器中显示的qwe html文档,这是我的代码:

mshtml.HTMLDocument doc = webBrowser1.Document.DomDocument as  mshtml.HTMLDocument;
string html = doc.documentElement.outerHTML;

最后的html字符串显示如下:

<!DOCTYPE html>
<html>....
<body>
  <outer code>....
  <div id="embedded">
  <iframe name="frame1" id="frame1" src="https://qwe.org" border="0" frameborder="0" style="height: 3675px;">
  </iframe>
  </div>
</body>
</html>

所以缺少的是qwe网站的文档代码:

<!DOCTYPE html>
     <html>
       <inner code>....
     </html>

有没有办法将嵌入的qwe网站中缺少的部分提取到相同的html字符串中,与IE / Chrome调试器相同

1 个答案:

答案 0 :(得分:0)

您可以尝试使用c#CEF wrapper https://cefsharp.github.io/来实际加载整个页面并检索代码。实际上似乎有一个子项目需要https://www.nuget.org/packages/CefSharp.OffScreen/

  

CefSharp.OffScreen提供了“无头”浏览器控件   自动化项目