
如果我们需要抓取网络上的数据,这时候我们就要写爬虫,这里面就涉及到网页的抓取、以及网页分析与数据提取。
下面推荐2个.Net开源Html解析器,方便用于网络爬虫Html源码的解析、Html源码编辑等场景。
一、AngleSharp
这是一个基于.Net开发的,Html代码解析器,支持通过C#实现类似Jquery的方式来解析Html源码、节点创建、节点删除、节点修改、属性的添加修改等,还支持SVG、XML、MathML等格式,此外还能解析Css。
项目地址:
https://github.com/AngleSharp/AngleSharp
项目特色
1、非常出色的性能;
2、基于.NET Standard 2.0开发,支持跨平台,包括移动平台;
3、扩展性强,可以自己自定义;
4、支持LINQ语法;
5、支持类似Jquery查询功能;
6、表单提交、Http请求等;
7、Api功能符合W3C规范标准。
部分代码示例
Html代码解析

Form表单提交,并获取超链接数量

通过Class选择元素

表格单元格选择

Html元素创建

添加Class

属性操作

二、html-agility-pack
Html Agility Pack (HAP) 是一个开源的 HTML 解析库。
项目地址:
https://github.com/zzzprojects/html-agility-pack
示例代码
获取指定的网页,并获取所有a标签的文本。
using HtmlAgilityPack;
using System;
// 加载 HTML 文件
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("https://www.xxx.com");
// 使用 XPath 查询
var nodes = doc.DocumentNode.SelectNodes("//a");
foreach (var node in nodes)
{
Console.WriteLine(node.InnerText);
}