`
北极的。鱼
  • 浏览: 158962 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Net C# 解析 HTML -- Html Agility Pack

    博客分类:
  • C#
 
阅读更多

转自: http://blog.csdn.net/flying881114/article/details/6609546

           http://www.cnblogs.com/stone_w/archive/2012/09/25/2701869.html

 

Why Html Agility Pack? (以下简称HAP)

.Net下解析HTML文件有很多种选择,包括微软自己也提供MSHTML用于manipulate HTML文件。但是,经过我一段时间的搜索,Html Agility Pack浮出水面:它是Stackoverflow网站上推荐最多的C# HTML解析器。HAP开源,易用,解析速度快。

 

How to use HAP?

1. 右击项目,选择"Manage NuGet Packages"

2. 搜索HTMLAgilityPack

3. 在Visual Studio Solution里,右击project -> add reference -> 选择解压文件夹里的HTMLAgilityPack.dll -> 确定

4. 代码头部加入 using HtmlAgilityPack;

Done!

 

Quick Start:

HtmlWeb webClient = new HtmlWeb();
HtmlDocument doc = webClient.Load("http://xxx");

HtmlNodeCollection hrefList = doc.DocumentNode.SelectNodes(".//a[@href]");

if (hrefList != null)
{
     foreach (HtmlNode href in hrefList)
     {
        HtmlAttribute att = href.Attributes["href"];
        doSomething(att.Value);

     }

}

 以上代码示例load进来一个网页,提取所有的link(就是<a href=...></a>),遍历时提取出link的内容(href.Attributes["href"].Value)然后doSomething().

 

简介

本文介绍net处理html页面元素的工具类(HtmlAgilityPack.dll)的使用,用途比较多的应该是例如采集类的功能,采集到的html字符串要怎样处理是一个头痛的问题,如果是截取就太麻烦了而且容易出错。所有就用到本文的第三方dll来处理了。

 

下载

右击项目,选择"Manage NuGet Packages"

搜索:HtmlAgilityPack,之后安装就行了

 

使用

1.添加HtmlAgilityPack.dll引用(引用类using HtmlAgilityPack;)。

2.简单根据html中input的id获取value代码如下:

// 模拟用户请求
WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
string htmlContext = webClient.DownloadString("http://stone_w.cnblogs.com/");
webClient.Credentials = CredentialCache.DefaultCredentials; // 添加授权证书
webClient.Headers.Add("User-Agent", "Microsoft Internet Explorer");
webClient.Headers.Add("Host", "www.cnblogs.com");

// 获取html元素(htmlContext为html页面字符串)
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContext);  // 加载html页面
HtmlNode navNode = htmlDoc.GetElementbyId("id名称");
Response.Write(navNode.Attributes["value"].Value);

 

总结

HtmlAgilityPack可以根据id查询value,还可以获取单个元素节点,都是HtmlDocument类的内置方法,大家可以试着练。谢谢完~

分享到:
评论

相关推荐

    html-agility-pack-master_超文件文件树形结构解析器_

    标题"html-agility-pack-master"表明这是一个关于HTML Agility Pack的主分支或项目源代码。"超文件文件树形结构解析器"是HTML Agility Pack的中文描述,它强调了该库的主要功能,即解析HTML文档并将其组织成易于操作...

    html-agility-pack:HTML Agility Pack(HAP)是一个免费的开放源代码HTML解析器,用C#编写,可读写DOM,并支持纯XPATH或XSLT。 这是一个.NET代码库,可让您解析“网络外” HTML文件

    什么是HTML Agility Pack(HAP)? 它是一个敏捷HTML解析器,可构建读/写DOM并支持纯XPATH或XSLT(无需了解XPATH或XSLT即可使用它,不用担心...)。 这是一个.NET代码库,可让您解析“网络外” HTML文件。 解析器...

    c#解析复杂html专题及常见问题整理.docx

    C#解析复杂HTML时,经常会使用到一个名为Html Agility Pack的库。这个库是一个非常强大的HTML解析工具,能够处理各种复杂结构的HTML文档,并且它的API设计得相对简单,易于理解和使用。以下是对该库的一些关键知识点...

    C# 操作Web文档插入文字及图片及wed转成html转pdf

    在C#中,可以使用HTML Agility Pack库解析和操作HTML文档。插入文字涉及修改`&lt;p&gt;`、`&lt;h&gt;`等标签的文本内容,插入图片则涉及到`&lt;img&gt;`标签,设置其`src`属性指向图片的URL或本地路径。 4. **Web文档转HTML**: 转换...

    最完全的基于C#的网络爬虫

    - HTML Agility Pack库:它是C#中常用的HTML解析器,能够解析不规则的HTML文档,提供XPath和LINQ查询方式来提取所需信息。 4. **多线程与异步编程**: - C#的Task类和async/await关键字可以用于实现爬虫的多线程...

    C#网页截图(不打开网页) 两种方式实现网页快照

    接着,引入HTML Agility Pack库,它是一个强大的HTML解析器,可以帮助我们处理HTML文档。通过解析HTML,我们可以获取到网页的结构和样式信息。 ```csharp WebClient client = new WebClient(); string ...

    c#编写的搜索引擎源码

    然后,HTML Agility Pack库可以帮助我们解析HTML文档,提取出关键词和其他有用信息。 1. **网页爬虫**:爬虫是负责遍历互联网并获取网页内容的程序。在C#中,可以利用HttpClient发送HTTP请求,获取网页HTML内容。...

    C# HtmlAgilityPack 爬虫实例

    基于HtmlAgilityPack的C#(.net core)爬虫实例 ,请求网页,利用HtmlAgilityPack解析网页数据,获取电影评分,产地演员和获奖信息然后存库。例子中的网址是猫眼电影网地址。

    c#asp.net表格Html数据模板转换Pdf文件web打印报表dll

    在C# ASP.NET应用中,可以通过HTML Agility Pack或AngleSharp等库解析和操作HTML表格。 接着,我们将关注HTML到PDF的转换。这个过程通常涉及到第三方DLL,如iTextSharp、PDFsharp、Syncfusion Essential PDF等。...

    c#使用htmlagilitypack解析html格式字符串

    在C#中,HTML Agility Pack是解析和操作HTML文档的强大工具,尤其适用于从网页抓取数据或进行网页自动化任务。 1. 引用HtmlAgilityPack.dll 要使用HTML Agility Pack,首先需要将HtmlAgilityPack库引入到你的项目中...

    HtmlAgilityPack

    已下载为HtmlAgilityPack.dll,直接引用即可,版本1.6.16

    C# WebBrowser获取网站数据

    对于复杂的网页,可能需要利用HTML Agility Pack库来解析DOM树,更方便地抓取和操作数据。安装这个库可以通过NuGet包管理器进行: ``` Install-Package HtmlAgilityPack ``` 然后,你可以使用HtmlAgilityPack来...

    HtmlAgilityPack 1.11.2最新版本

    HtmlAgilityPack(简称HAP)是一个用于.NET Framework和.NET Core的开源库,它为C#程序员提供了解析和操作HTML文档的能力。1.11.2是该库的最新版本,它包含了对多种.NET平台的支持,使得开发人员能够在各种环境和...

    C#爬取某网站数据

    在C#中,可以使用.NET框架提供的HttpClient类进行HTTP请求,再利用HTML Agility Pack或AngleSharp等库解析HTML文档,从而实现数据抓取。 描述中的关键信息包括"我写的解析html的库",这意味着该项目不仅涉及基础的...

    htmlagilitypack-94773.zip

    总结来说,"htmlagilitypack-94773.zip"包含了一个强大的HTML解析库的源代码,通过这个资源,开发者不仅可以学习到如何在C#中使用HTML Agility Pack处理HTML,还可以深入了解软件开发中的版本控制、构建流程和XPath...

    带有图片下载的爬虫程序-VS2010-C#

    C#可以结合HTML Agility Pack库,这是一个强大的HTML解析器,能处理不规则的HTML文档,通过XPath或LINQ查询语句找出`&lt;img&gt;`标签及其`src`属性。 3. **图片链接处理**:找到图片链接后,爬虫需要将相对路径转换为...

    c# 网页内容提取

    C#提供了多种方式来实现这一目标,如使用HTML Agility Pack库,这是一个强大的HTML解析器,可以方便地遍历DOM(文档对象模型),找到并提取特定元素的文本或属性值。此外,正则表达式也可以用于简单的模式匹配和提取...

    System.Drawing.Html.zip

    5. **自定义HTML渲染引擎**:创建这样一个引擎可能涉及到HTML解析(如使用HTML Agility Pack库)、CSS解析和应用,以及JavaScript执行(如果支持的话)。开发者需要处理元素布局、样式应用、事件处理等一系列复杂...

    c#版人气论坛灌水机

    3. **HTML解析**:可能涉及HTML Agility Pack或AngleSharp库,用于解析和操作网页HTML结构。 4. **定时任务**:使用C#的`System.Threading`命名空间中的`Timer`类或`Task.Delay`方法实现定时灌水。 5. **多线程编程*...

    C#视频小偷程序第一次用C#写小偷

    4. **HTML与DOM解析**:解析HTML源码以查找视频链接,可能需要使用到HTML Agility Pack或其他解析库。 5. **正则表达式**:用于匹配和提取网页中的特定模式,如视频URL。 6. **WebClient或HttpClient类**:C#中用...

Global site tag (gtag.js) - Google Analytics