为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用.NET的WebBrowser或mshtml.HTMLDocument动态生成HTML代码?

如何使用.NET的WebBrowser或mshtml.HTMLDocument动态生成HTML代码?

如何使用.NET的WebBrowser或mshtml.HTMLDocument动态生成HTML代码?我读过的关于这个主题的大多数答案都指向System.Windows.Forms.WebBrowser类或来自Microsoft HTML Object Library程序集的COM接口mshtml.HTMLDocument。WebBrowser类没有引导我到任何地方。以下代码无法检索由我的Web浏览器呈现的HTML代码:[STAThread]public static void Main(){     WebBrowser wb = new WebBrowser();     wb.Navigate("https://www.google.com/#q=where+am+i");     wb.DocumentCompleted += delegate(object sender, WebBrowserDocumentCompletedEventArgs e)     {         mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)wb.Document.DomDocument;         foreach (IHTMLElement element in doc.all)         {                     System.Diagnostics.Debug.WriteLine(element.outerHTML);         }          };     Form f = new Form();     f.Controls.Add(wb);     Application.Run(f);}以上只是一个例子。我真的不想找到一个解决方法来找出我所在城镇的名称。我只需要了解如何以编程方式检索那种动态生成的数据。(调用新的System.Net.WebClient.DownloadString(“ https://www.google.com/#q=where+am+i ”),将生成的文本保存到某处,搜索您当前所在城镇的名称找到了,如果你能找到它,请告诉我。)但是,当我从我的网络浏览器(即或Firefox)访问“ https://www.google.com/#q=where+am+i ”时,我会在网页上看到我的城镇名称。在Firefox中,如果我右键单击城镇名称并选择“Inspect Element(Q)”,我会清楚地看到用HTML代码编写的城镇名称,这看起来与WebClient返回的原始HTML完全不同。在我厌倦了玩System.Net.WebBrowser后,我决定给mshtml.HTMLDocument一个镜头,最后得到同样无用的原始HTML:public static void Main(){     mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)new mshtml.HTMLDocument();     doc.write(new System.Net.WebClient().DownloadString("https://www.google.com/#q=where+am+i"));     foreach (IHTMLElement e in doc.all)     {             System.Diagnostics.Debug.WriteLine(e.outerHTML);     }}我想必须有一种优雅的方式来获取这种信息。现在,我能想到的是将一个WebBrowser控件添加到表单中,让它导航到相关的URL,发送键“CLRL,A”,并将页面上显示的任何内容复制到剪贴板并尝试解析它。不过,这是一个可怕的解决方案。
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您的网络浏览器代码看起来很合理 - 等待获取当前内容的内容。不幸的是,没有官方的“我已经完成了执行JavaScript,随意窃取内容”来自浏览器或JavaScript的通知。

某些活动等待(不是SleepTimer可能)是必要的并且是特定于页面的。即使您使用无头浏览器(即PhantomJS),您也会遇到同样的问题。


查看完整回答
反对 回复 2019-07-23
  • 2 回答
  • 0 关注
  • 1271 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信