//过滤html标签
static void InnerText()
{
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument doc = htmlWeb.Load("http://www.cnblogs.com/", "GET");
HtmlNode rootNode = doc.DocumentNode;
Console.WriteLine(rootNode.InnerHtml);
//Console.WriteLine(rootNode.InnerText);
} //选择器
static void GetBlogs()
{
string url = "http://www.cnblogs.com/";
HtmlWeb htmlWeb = new HtmlWeb();
HtmlDocument doc = htmlWeb.Load(url, "GET");
//doc.GetElementbyId("aa");
HtmlNode rootNode = doc.DocumentNode;
HtmlNodeCollection h3Nodes = rootNode.SelectNodes("//div[@class='post_item_body']/h3");
foreach (var h3Node in h3Nodes)
{
HtmlNode aNode = h3Node.SelectSingleNode("a"); //筛选a标签节点
HtmlNode pNode = h3Node.NextSibling.NextSibling; //下一个节点
string blogLink = aNode.GetAttributeValue("href", ""); //获取元素属性
string title = aNode.InnerText;
string content = pNode.InnerText;
Console.WriteLine(title);
Console.WriteLine(blogLink);
Console.WriteLine(content);
Console.WriteLine("------------------------------------------------------");
}
return;
} //XPath表达式
static void XPathTest()
{
string path = @"test.html";
HtmlDocument doc = new HtmlDocument();
HtmlNode rootNode = doc.DocumentNode;
doc.Load(path);
//获取h1标签
var h1 = rootNode.SelectSingleNode("/html/body/div[1]/h1[1]");
Console.WriteLine(h1.InnerText);
//获取ul>li 姓名标签
var liName = rootNode.SelectSingleNode("/html/body/div[2]/ul[1]/li[1]");
Console.WriteLine(liName.InnerText);
//获取ul>li 年龄标签
var liAge = rootNode.SelectSingleNode("/html/body/div[2]/ul[1]/li[2]");
Console.WriteLine(liAge.InnerText);
}

test.html代码如下:

 <html>
<head>
</head>
<body>
<div>
<h1>欢迎访问这个网页!</h1>
</div> <div>
<ul class="user_match clear">
<li>姓名:张三</li>
<li>年龄:18</li>
</ul>
</div>
</body>
</html>

HtmlAgilityPach基本使用方法的更多相关文章

  1. javaSE27天复习总结

    JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5) ...

  2. mapreduce多文件输出的两方法

    mapreduce多文件输出的两方法   package duogemap;   import java.io.IOException;   import org.apache.hadoop.conf ...

  3. 【.net 深呼吸】细说CodeDom(6):方法参数

    本文老周就给大伙伴们介绍一下方法参数代码的生成. 在开始之前,先补充一下上一篇烂文的内容.在上一篇文章中,老周检讨了 MemberAttributes 枚举的用法,老周此前误以为该枚举不能进行按位操作 ...

  4. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法

    直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...

  5. 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例

    前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...

  6. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  7. ArcGIS 10.0紧凑型切片读写方法

    首先介绍一下ArcGIS10.0的缓存机制: 切片方案 切片方案包括缓存的比例级别.切片尺寸和切片原点.这些属性定义缓存边界的存在位置,在某些客户端中叠加缓存时匹配这些属性十分重要.图像格式和抗锯齿等 ...

  8. [BOT] 一种android中实现“圆角矩形”的方法

    内容简介 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角.思路是利用"Xfermode + Path"来进行 ...

  9. JS 判断数据类型的三种方法

    说到数据类型,我们先理一下JavaScript中常见的几种数据类型: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Functi ...

随机推荐

  1. dict文档

    文档 class dict(object): """ dict() -> new empty dictionary 创建字典的方式有两种: 1.dic = {} 2 ...

  2. Commons Email使用

    Apache Commons Email Apache的一个开源项目,是基于另一个开源项目Java Mail上进行封装的,使用起来更加简单方便: http://commons.apache.org/p ...

  3. git提交到远程虚拟机

    git到自己的虚拟机中第一步:打通git(一)Linux中(ip为10.1.8.1)1.安装git如:Ubuntu中安装gitapt install git 2.Ubuntu中添加git用户sudo ...

  4. 程序猿Web面试之jQuery

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/powertoolsteam/article/details/32325013  又到了一年一度的 ...

  5. 从CPU/OS到虚拟机和云计算

      从CPU/OS到虚拟机和云计算  作者:张冬            关于软硬件谁为主导这个话题,套用一句谚语就是三十年河东三十年河西.风水轮流转.软件和硬件一定是相互促进.相互拆台又相互搭台的. ...

  6. yii2引入js和css

    assets/AppAsset.php public $css = [ 'css/site.css', 'css/font/css/font-awesome.min.css', 'css/doc.cs ...

  7. mysql数据库从删库到跑路之mysql库操作

    一 知识储备 MySQL数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student, ...

  8. Bitmap: a C++ class

    Bitmap: a C++ class        The five steps involved to draw a bitmap: Load bitmap using LoadBitmap or ...

  9. Delphi APP 開發入門(七)通知與雲端推播

    Delphi APP 開發入門(七)通知與雲端推播 分享: Share on facebookShare on twitterShare on google_plusone_share   閲讀次數: ...

  10. 7. Reverse Integer(翻转整数)

    Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Examp ...