做孝道的网站的目的,WordPress女人网模板,新建文档怎么做网站,中山技术支持中山网站建设讲故事前几天有点空闲时间#xff0c;在github上看一些.Net的开源库#xff0c;看到了关于爬虫相关的库#xff0c;于是加入了一个QQ群#xff0c;看到里面各位大佬讨论的是爬的越好#xff0c;进去越快#xff0c;于是我自己也想做一个爬虫相关的东西#xff0c;但是爬… 讲故事前几天有点空闲时间在github上看一些.Net的开源库看到了关于爬虫相关的库于是加入了一个QQ群看到里面各位大佬讨论的是爬的越好进去越快于是我自己也想做一个爬虫相关的东西但是爬虫是个危险的东西自己也不敢随便爬别人的网页于是找到了一个朋友拿他的网站来进行练习练习对于.Net来说。爬虫相关的库还是蛮多的于是我选择了HtmlAgilityPack来做一个爬虫练习当然什么是爬虫呢简而言之:爬虫的基本流程是下载数据发送 HTTP 请求并获得返回的 resonse) - 解析返回的文本可以是 text、json、html) - 存储解析到的数据学习一个框架我们肯定是从它的官方文档开始 地址:https://html-agility-pack.net/Html解析器From File(从文件加载 HTML 文档)From String (从指定的字符串加载 HTML 文档)From Web (从 Internet 资源中获取 HTML 文档)From Browser(从 WebBrowser 获取 HTML 文档)于是我选择了From Web 来解析我们的html文档 代码如下:var html https://dotnet9.com/;HtmlWeb web new HtmlWeb();var htmlDoc web.Load(html);既然Html文档被我们获取到了我们肯定就要对Html内容进行一个解析了。Html选择器SelectNodes()选择与 XPath 表达式匹配的节点列表SelectSingleNode(String)选择与 XPath 表达式匹配的第一个 XmlNode打开网站找到我们想要爬取的网站今天我们就来爬该网站的特色专辑下的所有文章。打开调试模式我们可以看到特色专辑是一个a标签我们再来查看该标签的上一级元素是lili上一级元素是ui那我们就可以来获取该节点var allNodes htmlDoc.DocumentNode.SelectNodes(//ul[idstarlist]//li[classmenu]);当然我们也可以使用Xpath来获取节点内容var singNodes htmlDoc.DocumentNode.SelectSingleNode(/html[1]/body[1]/header[1]/div[3]/nav[1]/ul[1]/li[3]//ul[1])然后我们再来获取该特色专辑下的子菜单的的网址经发现a标签的href 属性规定链接的目标地址那我们第一步肯定是要获取该子菜单下的所有链接var singNodes htmlDoc.DocumentNode.SelectSingleNode(/html[1]/body[1]/header[1]/div[3]/nav[1]/ul[1]/li[3]//ul[1]).ChildNodes.Where(o o.Nameli);Liststring lstUrl new Liststring();foreach (var item in singNodes){var aNodes item.ChildNodes.Where(o o.Name a).First();string url aNodes.Attributes[href].Value;lstUrl.Add(url);}随意打开一个子菜单可以看到相关的文章标题描述以及图片等这就是我们想要的内容了分析方法还是和刚才一样代码如下foreach (var item in lstUrl){htmlDoc web.Load(https://dotnet9.comitem);var resultNodes htmlDoc.DocumentNode.SelectSingleNode(//div[classpics-list-box whitebg]//ul).ChildNodes.Where(oo.Nameli);foreach (var itemResultNodes in resultNodes){WebData webData new WebData();var aNodes itemResultNodes.ChildNodes.Where(o o.Name a).First();webData.Url aNodes.Attributes[href].Value;webData.Title aNodes.ChildNodes[h2].InnerText;webData.Desc aNodes.ChildNodes[p].InnerText;webData.Img aNodes.ChildNodes[i].ChildNodes[img].Attributes[src].Value;Console.WriteLine($标题:{webData.Title}-描述:{webData.Desc}-Img:{webData.Img}-{webData.Url}\r\n);}}这样我们就能够获取到我们想要的东西了运行一下代码我们的第一个爬虫就成功了。总结即兴发挥写了第一个爬虫大家要是有更好的方案欢迎交流独乐乐不如众乐乐本篇就说到这里啦希望对您有帮助。最后声明一下: 总的来说技术本无罪但是你利用技术爬取别人隐私、商业数据那你就是蔑视法律了请各位守好各自的底线