使用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()
        {
            string html = string.Empty;
            string url = "http://quote.eastmoney.com/stocklist.html";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(url);

                //关键代码1:设置请求头采用GZip和deflate两种压缩算法
                client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate");
                var response = client.GetAsync(url).Result;

                var fileStream = response.Content.ReadAsStreamAsync().Result;

                //关键代码2:对文件流采用GZip算法解压
                GZipStream gzip = new GZipStream(fileStream, CompressionMode.Decompress);

                using (StreamReader reader = new StreamReader(gzip, Encoding.GetEncoding("gb2312")))//中文编码处理
                {
                    html = reader.ReadToEnd();
                    //File.WriteAllText(@"C:\stock.html", reader.ReadToEnd(), Encoding.Default);
                }
            }

            return html;
        }

示例代码2:

        static void Main(string[] args)
        {
            string html= GetHtml();

            var doc = new HtmlDocument();
            doc.LoadHtml(html);

            //查找dom节点div的Id为quotesearch下所有ul下的li下的所有a节点
            var nodes = doc.DocumentNode.SelectNodes("//div[@id=‘quotesearch‘]/ul/li/a");
            foreach (var node in nodes)
            {
                var arrays=node.InnerText.Split(‘(‘);
                Console.WriteLine(string.Format("股票名称:{0},股票代码:{1}", arrays[0], arrays[1].Replace(")","")));
            }

            //File.WriteAllText(@"C:\stock.html", matches.ToString(), Encoding.Default);

            Console.ReadKey();
        }

原文地址:https://www.cnblogs.com/wgx0428/p/10262040.html

时间: 2024-08-05 18:49:15

使用Html Agility Pack快速解析Html内容的相关文章

C#通过 Html Agility Pack(HAP)解析html源码

将内容过程中经常用到的一些内容片段做个收藏,如下的资料是关于C#通过 Html Agility Pack(HAP)解析html的内容,应该对各位朋友有一些用处. HtmlWeb webClient = new HtmlWeb(); if (hrefList != null){foreach (HtmlNode href in hrefList){HtmlAttribute att = href.Attributes["href"];doSomething(att.Value); } }

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

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

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

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

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

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

C#解析HTML神器 Html Agility Pack

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

Html Agility Pack解析HTML页

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

C#解析HTML利器-Html Agility Pack

今天刚开始做毕设....好吧,的确有点晚.我的毕设设计需要爬取豆瓣的电影推荐,于是就需要解析爬取下来的html,之前用Python玩过解析,但目前我使用的是C#,我觉得C#不比python差,有微软大大在,这个不需要担心,主要还是生态问题.查了下资料,发现Html Agility Pack是比较好的,当然还有其他的,我就不说了,主要使用它做的. 官网地址(可以自己去下载dll): http://html-agility-pack.net/select-nodes 参考:Html Agility