C# webbrowser怎么获取JS加载的数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# webbrowser怎么获取JS加载的数据?相关的知识,希望对你有一定的参考价值。
http://news.ecnu.edu.cn/department/column.shtml
我想用程序获得上面网页中每条新闻的链接,利用c#只能抓到源代码,但是源代码里面没有链接,审视元素却可以看得到,这些数据应该是用js加载上去的,所以我想问一下用js加载的数据要怎么获得,谢谢大大
打开电脑。
打开VS。
打开你的工程项目。
在代码里添加一个SendDataToWin(string json)方法:js自己获取数据完成完就调用window.external.SendDataToWin(string json);把数据推给webbrowser,其中SendDataToWin(string json)是定义在窗体里的方法。
按F5运行调试。
然后再页面上<SCRIPT language="javascript" runat="server" type="text/javascript"> 然js运行在服务器端;就可以调用js里的函数了本回答被提问者采纳
C# .NET WebBrowser.Document GetElementById获取不到指定ID
1、首先我是 WebBrowser 默认加载了一个页面比如百度
然后点击一个按钮:
var htmlDocument = webBrowser.Document;
if (htmlDocument == null) return null;
htmlDocument = htmlDocument.OpenNew(true);
htmlDocument.Write(html);
var newHtmlDocument = webBrowser.Document;
if (newHtmlDocument == null) return null;
最后用:
var speclist10 = newHtmlDocument.GetElementById("speclist10");
获取不到Id为 speclist10 的HtmlElement
我可以肯定 html 中包含 Id为speclist10的div
获取不到的核心原因是页面还未加载完。违反了页面加载生命周期原理。 参考技术A JavaScript Document
function show(str)
var str1="td"+str;
var str="show"+str;
for (var i=1; i<18; i++)
var obj = document.getElementById('show' + i.toString());
if (obj) obj.style.display = 'none';
document.getElementById(str).style.display="block";
追问
不是js,是C#的WebBrowser
以上是关于C# webbrowser怎么获取JS加载的数据?的主要内容,如果未能解决你的问题,请参考以下文章