C#解析HTML利器-Html Agility Pack

今天刚开始做毕设....好吧,的确有点晚。我的毕设设计需要爬取豆瓣的电影推荐,于是就需要解析爬取下来的html,之前用Python玩过解析,但目前我使用的是C#,我觉得C#不比python差,有微软大大在,这个不需要担心,主要还是生态问题。查了下资料,发现Html Agility Pack是比较好的,当然还有其他的,我就不说了,主要使用它做的。

官网地址(可以自己去下载dll):

http://html-agility-pack.net/select-nodes

参考:Html Agility Pack基础类介绍及运用

代码设计:

static void complete(object o, AsyncCompletedEventArgs e)
 {
 // 开始解析html
 var doc = new HtmlDocument();
 doc.Load( "E:\程序文件\C#程序代码\Validate\ConsoleApplication1\movie.txt", Encoding.UTF8);
 List<string> movie = new List<string>(); 

 //
 HtmlNodeCollection nodeCollection = doc.DocumentNode.SelectNodes("//ul/li[ class=\"title\"]");
 foreach (HtmlNode n in nodeCollection)
 {
 Console.WriteLine(n.InnerHtml.Trim());
 movie.Add(n.InnerText.Trim());
 } 

 //获取豆瓣最受欢迎影评
 HtmlNodeCollection nodeCollection1 = doc.DocumentNode.SelectNodes("//div[ class=\"review-bd\"]/h3");
 foreach (HtmlNode n in nodeCollection1)
 {
 Console.WriteLine(n.InnerHtml.Trim());
 movie.Add(n.InnerText.Trim());
 } 

 foreach(var m in movie)
 {
 Console.WriteLine(m);
 } 

 File.Delete( "E:\程序文件\C#程序代码\Validate\ConsoleApplication1\movie.txt");
 } 

 static void Main(string[] args)
 {
 Console.BufferHeight = 10000;
 Console.BufferWidth = 10000;
 string moviePath =  "E:\程序文件\C#程序代码\Validate\ConsoleApplication1\movie.txt";
 WebClient wc = new WebClient();
 wc.UseDefaultCredentials = true;
 wc.DownloadFileAsync(new Uri("https://movie.douban.com/"), moviePath);
 wc.DownloadFileCompleted += new AsyncCompletedEventHandler(complete); 

 Console.Read();
 }

对于WebClient文档,请看https://msdn.microsoft.com/zh-cn/library/system.net.webclient(v=vs.110).aspx

不得不说,微软官网的系列文档真是良心!以前也是听人说过,微软的解决方案以及文档很全,但是一直查资料都是直接百度,现在换了一种,直接上微软官网查....真是良心!而且例子是比较经典的!

原文地址:https://www.cnblogs.com/zhiyong-ITNote/p/8448865.html

时间: 2024-10-23 03:25:51

C#解析HTML利器-Html Agility Pack的相关文章

C#解析HTML神器 Html Agility Pack

曾经,我傻乎乎的用正则表达式成功的解析了学校的新闻网.教务管理系统.图书馆管理系统中我想要的所有的内容.那时候废了好大的劲写那正则啊,而且最后还是各种不给力,经常会有意想不到的bug出现,最后经过无数次修复才基本可以正常使用.但是还是很不爽的.后来看见别人用这个东西解析HTML,就感觉很强大,今天自己动手尝试了一下,当时几天的代码,用这个类库几分钟就搞定了.废话不多说,进入主题. Html Agility Pack主页:http://htmlagilitypack.codeplex.com/ 作

html解析器:Html Agility Pack

去掉注释.样式.和js代码: foreach(var script in doc.DocumentNode.Descendants("script").ToArray()) script.Remove();foreach(var style in doc.DocumentNode.Descendants("style").ToArray()) style.Remove(); foreach (var comment in doc.DocumentNode.Selec

Html Agility Pack 解析Html

Hello 好久不见 哈哈,今天给大家分享一个解析Html的类库 Html Agility Pack.这个适用于想获取某网页里面的部分内容.今天就拿我的Csdn的博客列表来举例. 打开页面  用Firebug 找到文章列表的内容区域 如上面图片 我们已经找到了想要的内容 在Html 中的位置 那么接下来 第一步就是获取Html  然后 用Html Agility Pack 找出我们想要的东西 1. 获网页的Html 1 #region 获取文章列表 +GetHtml(string url) 2

HTML Agility Pack 搭配 ScrapySharp,彻底解除Html解析的痛苦(转)

自从 Web 应用程序自 1993 年 W3C 设立以来就开始发展,而且 HTML 也历经了数个版本的演化(1.0 – 2.0 – 3.0 – 3.2 – 4.0 – 4.01),现在也已经成为Web网页或应用程序的最基础,想要学习如何设计 Web 网页或开发 Web 应用程序,这已经是绝对必须要学的东西了,就算是方便的控件(例如 ASP.NET),但 HTML 仍然有学习它的必要性,因此如果不会 HTML,就等于没学过 Web 网页一般. 拜 HTML 与 Web 浏览器蓬勃发展之赐,各式各样

[c#] Html Agility Pack 解析HTML

摘要 在开发过程中,很有可能会遇到这样的情况,服务端返回的是html的内容,但需要在客户端显示纯文本内容,这时候就需要解析这些html,拿到里面的纯文本.达到这样的目的可以有很多途径,比如自己写正则表达式,但对于没有什么规则的内容,就有点力不从心了.Html Agility Pack开源组件,可以通过xPath的方式快速的解析html内容. 一个例子 组件网址:http://htmlagilitypack.codeplex.com/ ,你可以通过Nuget进行安装. 比如我们这里解析博客园首页文

开源项目Html Agility Pack实现快速解析Html

[转]开源项目Html Agility Pack实现快速解析Html 这是个很好的的东西,以前做Html解析都是在用htmlparser,用的虽然顺手,但解析速度较慢,碰巧今天找到了这个,就拿过来试,一切出乎意料,非常爽,推荐给各位使用. 下面是一些简单的使用技巧,希望对大家有用,我个人也是个学习过程. Why Html Agility Pack? (以下简称HAP) .Net下解析HTML文件有很多种选择,包括微软自己也提供MSHTML用于manipulate HTML文件.但是,经过我一段时

Html Agility Pack解析HTML页

文章来源:Html Agility Pack解析HTML页 现在,在不少应用场合中都希望做到数据抓取,特别是基于网页部分的抓取.其实网页抓取的过程实际上是通过编程的方法,去抓取不同网站网页后,再进行分析筛选的过程.比如,有的比较购物网站,会同时去抓取不同购物网站的数据并将其保存在数据库中.一般,这些网页的抓取都需要对抓取回来的HTML进行解析. .NET提供了很多类去访问并获得远程网页的数据,比如WebClient类和HttpWebRequest类.这些类对于利用HTTP去访问远端的网页并且下载

C# 网络爬虫利器之Html Agility Pack如何快速实现解析Html

简介 现在越来越多的场景需要我们使用网络爬虫,抓取相关数据便于我们使用,今天我们要讲的主角Html Agility Pack是在爬取的过程当中,能够高效的解析我们抓取到的html数据. 优势 在.NET技术下,解析html工具也很多,比如很多人可能会使用htmlparser,或者微软的MSHTML,htmlparser虽然比较易上手,但是相对应的解析速度较慢,而Html Agility Pack解析速度相当快,并且开源,易用,它可以帮助我们解析html文档就像用XmlDocument类来解析xm

使用Html Agility Pack快速解析Html内容

Html Agility Pack 是一个开源的.NET 方案HTML解析器. 开源地址:https://github.com/zzzprojects/html-agility-pack 用法:vs上通过Nuget搜索Html Agility Pack并安装 示例代码1: /// <summary> /// 获取网页内容 /// </summary> /// <returns></returns> private static string GetHtml(