WebBrower如何获取脚本加载完毕后的HTML

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebBrower如何获取脚本加载完毕后的HTML相关的知识,希望对你有一定的参考价值。

例如,我用webBorwser打开了一个页面A, 该页面源代码中没有任何html元素,是通过脚本生成的,比如脚本会生成一个input按钮B,现在我想获得B这个元素,该怎么办?

因为页面A源代码是没有B的,所以不能通过源代码或DOM获得,有其他的办法吗
To cbf_164:
你那种方式我知道,那是正常获取HTML的方式。我的问题你没有看懂,在DocumentCompleted完成之后,你用Document.Body获取的HTML根本就没有任何元素,里面全是一堆JS,JS执行过之后,才会生成HTML。我想要的是,不仅等页面加载完,连JS也执行完后得到的那些HTML。仅仅是页面加载完的话,是没有任何HTML的,更不用说All["B"]了

要获取HTML,可以使用webBrowser1_DocumentCompleted函数,也就是加载完成的时候去触发这个事件,取HTML的代码是webBrowser1.Document里面很多,比如获取body的:webBrowser1.Document.Body.InnerHtml
至于要细到一个button的话得慢慢解析,要是有ID比较好办,可以用
webBrowser1.Document.Body.All["ID"].InnerHtml类似的方法去做
这东西不难,花点时间摸索下基本上都能搞出来
参考技术A 为什么要获得b呢?实在不行让页面post回服务器就可以获得了,在Request.Form["B的id"]里面 参考技术B 不会。这个确实不懂。

以上是关于WebBrower如何获取脚本加载完毕后的HTML的主要内容,如果未能解决你的问题,请参考以下文章

c# WebBrower 与 HttpRequest配合 抓取数据

无阻塞加载脚本,按序执行

jQuery 是如何判断HTML页面加载完毕的?它的原理是啥?

让脚本等到 iframe 加载完毕后再运行

C#webbrowser如何获取网页的html文件

第五章jQuery