在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引擎。
上述就是C#学习教程:在C#中搜索动态Web内容分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1009647.html