当前位置:首页 > 技术文章 > 正文内容

推荐2个.Net开源Html解析器,方便我们提取网页数据

arlanguage1周前 (04-27)技术文章17

如果我们需要抓取网络上的数据,这时候我们就要写爬虫,这里面就涉及到网页的抓取、以及网页分析与数据提取。

下面推荐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 解析库。

  • 强大的容错性:HAP 对于“真实世界”中常见的 HTML 错误非常宽容,能够解析格式不规范的 HTML 文件。
  • DOM 操作:它提供了一个类似 System.Xml 的对象模型,但专门用于 HTML 文档,支持对 HTML 的读写操作。
  • XPath 和 XSLT 支持:用户可以使用 XPath 查询和 XSLT 转换来处理 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);
}

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/4184.html

分享给朋友:

“推荐2个.Net开源Html解析器,方便我们提取网页数据” 的相关文章

小程序开发SSL证书申请

打开JoySSL官网注册并填写注册码230918申请免费试用;目前各大平台均要求小程序平台强制要求使用HTTPS加密协议,这意味着小程序上线必须部署SSL证书以确保所有网络请求的安全性,否则无法正常上线使用。这是小程序大规模使用的背景下确保用户敏感信息安全的必然措施。小程序专用SSL证书申请1.注册...

Nginx教程

NginxNginx1. 基本概念2. centos7部署nginx1. 部署前准备2. 安装nginx3. 配置文件1. nginx目录结构2. 默认的nginx.conf1. nginx.conf内容结构:2. nginx.conf内容格式说明:3. location 语法详解1. 语法规则:2...

docker安装php

本节将介绍在线使用Docker安装PHP解析器的步骤。通过本节的实操,您可以掌握从Docker环境的使用,PHP镜像以及Nginx服务器的拉取、导入、容器的启动的全部过程,从而具备使用Docker安装并部署PHP与ngninx的能力。本节要求您具备的基本能力有Linux,Docker,以及nginx...

nginx 解决 readv() failed (104: Connection reset by peer)

查看nginx error错误,发现上传接口报以下错:2019/10/10 19:58:25 [error] 299784#0: *5967188 readv() failed (104: Connection reset by peer) while reading upstream, clien...

K8S灰度环境频繁出现502 k8s ingress 灰度发布

公司一个需求版本开发、测试结束,升级到灰度环境之后频繁出现502公司使用的是php + nginx 所以分析也是按照这个方向来分析的。nginx报错:NGINX ERROR 10.9.95.75 !!!2020/07/21 17:05:12 [error] 7#7: *38808 recv() fa...

高性能Linux服务器构建实战:运维监控、性能调优与集群应用

百万级字迹详解实战案例,篇幅因素故只展现pdf目录,完整解析获取方式在篇尾了!目录读者对象Web应用篇(1至第3章)数据备份恢复篇(4至第6章)网络存储应用篇(7和第8章)运维监控与性能优化篇(9和第10章)集群高级应用篇(11至第14章)勘误和支持第1篇 Web应用篇1 、轻量级HTTP服务器Ng...