在C#中搜索动态Web内容

是否有可能刮取动态网页生成的数据? 我的意思是例如这个网站使用一些java脚本生成标签

 document.write(":"+(v2j0j0^o5r8)+(r8d4x4^y5i9)+(b2r8e5^u1p6)+(r8d4x4^y5i9)) 

每次刷新页面时值都会更改。 每个生成的代码表示从0到9的数字,例如(code1)+(code2)+(code3)+(code4) ,在后端编写一些类型的解析器,它理解它并相应地生成数字。

一旦页面被渲染,例如code1被设置在数字4的哪里,生成数字4的位置,它在被解析之后来自该代码。

如果我们使用HtmlAgilityPack我们会看到java脚本代码,但不会看到它生成的输出。 有没有什么办法可以在呈现页面时读取它创建的标记?

感谢指出。我看到通过实现.same结果,但后来又看了一个评论谁说使用IE引擎我转过来并做了一个小应用程序完成工作。我添加了IE并导航到网站并阅读内容这是代码

  private void webBrowser1_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e) { System.Windows.Forms.HtmlElementCollection elementsforViewPost = webBrowser1.Document.GetElementsByTagName("font"); foreach (System.Windows.Forms.HtmlElement current2 in elementsforViewPost) { if (current2.InnerText != null && CheckForValidProxyAddress(current2.InnerText) && ObtainedProxies.Where(index=>index.ProxyAddress == current2.InnerText.Trim()).ToList().Count == 0) { Proxy data = new Proxy(); data.IsRetired = false; data.IsActive = true; int result = 1; data.DomainsVisited = 0; data.ProxyAddress = current2.InnerText.Trim(); ObtainedProxies.Add(data); } 

并且为了检查收到的文本是否有效代理,这是我很久以前通过谷歌搜索从一些页面获得它

  private bool CheckForValidProxyAddress(string address) { //create our match pattern //string pattern = @"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$:([0-9][0-9][0-9][0-9])"; string pattern = @"\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b\:[0-9]{0,4}"; //create our Regular Expression object Regex check = new Regex(pattern); //boolean variable to hold the status bool valid = false; //check to make sure an ip address was provided if (address == "") { //no address provided so return false valid = false; } else { //address provided so use the IsMatch Method //of the Regular Expression object valid = check.IsMatch(address, 0); } //return the results return valid; } 

我认为你不得不以某种方式使用IE引擎。