当前位置: 首页 > 编程语言 > C#

爬虫项目分享

时间:2023-04-10 23:20:08 C#

c#:爬虫项目我可以很轻松的跟着下面的代码示例:使用浏览器控件向目标网站发起请求。捕获来自目标网站的响应。将响应转换为DOM对象。遍历DOM对象并捕获“FirstName”、“LastName”等(如果它们是响应的一部分)。谢谢下面是使用WebRequest对象检索数据并将响应捕获为流的代码。publicstaticStreamGetExternalData(stringurl,stringpostData,inttimeout){ServicePointManager.ServerCertificateValidationCallback+=delegate(objectsender,X509Certificatecertificate,X509Chainchain,SslPolicyErrorssslPolicyErrors){//如果我们隐含地信任被调用者,则返回true...否则,执行验证逻辑return[bool];};WebRequest请求=空;HttpWebResponse响应=null;尝试{request=WebRequest.Create(url);request.Timeout=超时;//强制快速超时if(postData!=null){request.Method="POST";request.ContentType="application/x-www-form-urlencoded";request.ContentLength=postData.Length;使用(StreamWriterrequestStream=newStreamWriter(request.GetRequestStream(),System.Text.Encoding.ASCII)){requestStream.Write(postData);requestStream.Close();}}响应=(HttpWebResponse)request.GetResponse();}catch(WebExceptionex){Log.LogException(ex);}最后{请求=空;}if(response==null||response.StatusCode!=HttpStatusCode.OK){if(response!=null){response.Close();响应=空;}返回空值;}返回响应.GetResponseStream();为管理响应,我使用了一个自定义的Xhtml解析器,但它有数千行代码和几个公共解析器(参见Darin的评论)。编辑:根据OP的问题,可以在请求中添加标头以模拟用户代理。例如:request=(HttpWebRequest)WebRequest.Create(url);request.Accept="应用程序/x-ms-应用程序,图像/jpeg,应用程序/xaml+xml,图像/gif,图像/pjpeg,应用程序/x-ms-xbap,应用程序/x-shockwave-flash,*/*";request.Timeout=超时;request.Headers.Add("Cookie",cookies);////显示为标准用户代理request.UserAgent="Mozilla/5.0(Windows;U;WindowsNT6.1;en-US)";在这里您可以找到所需教程的4个部分。这是第一个,这里有4个部分(如何编写搜索引擎)你可以看看HtmlAgilityPack和/或SgmlReader。下面是一个使用SgmlReader的示例,它选择DOM中包含一些文本的所有节点:com";vardoc=newXmlDocument();doc.Load(阅读器);varnodes=doc.SelectNodes("//*[contains(text(),'Products')]");foreach(节点中的XmlNode节点){Console.WriteLine(node.OuterXml);如果你想要一种纯C#的方式来遍历网页,WatiN是个不错的选择。它允许您通过C#代码轻松打开Web浏览器并浏览(和操作)网页。下面是使用API使用System;搜索Google(取自他们的文档)的示例;使用WatiN.Core;namespaceWatiNGettingStarted{classWatiNConsoleExample{[STAThread]staticvoidMain(string[]args){//打开一个新的InternetExplorer窗口并//转到google网站。IEie=newIE("http://www.google.com");//找到搜索文本字段并在其中键入Watin。ie.TextField(Find.ByName("q")).TypeText("WatiN");//点击谷歌搜索按钮。ie.Button(Find.ByValue("谷歌搜索")).Click();//如果您想立即关闭//InternetExplorer和控制台窗口,请取消注释以下行。//ie.Close();您还可以使用selenium轻松遍历DOM并获取字段的值。它还会自动为您打开浏览器。以上就是C#学习教程:c#:爬虫项目分享的全部内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: