使用HtmlAgilityPack.HtmlDocument彻底清除HTML标签-C/S开发框架

测试案例1
HTML原文地址:https://www.csframework.com/archive/1/arc-1-20211205-4041.htm
去除HTML标签后:

测试案例2
原文地址:https://www.cnblogs.com/Yellowshorts/archive/2013/03/09/2951503.html

去除HTML标签后:

C#源码
C# 全选
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace CSFramework.HtmlSpider
{
public class SpiderTool
{
/// <summary>
/// 移除HTML
/// </summary>
/// <param name="htmlContent"></param>
/// <returns></returns>
public static string RemoveHTML(string htmlContent)
{
//移除HTML
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlContent);
var ttt = doc.DocumentNode.InnerText.Trim();//清除HTML标签
ttt = RemoveEmptyLine(ttt);
ttt = RemoveHtmlTags(ttt);
return ttt;
}
public static string RemoveHtmlTags(string Htmlstring)
{
if (Htmlstring.Length > 0)
{
//删除脚本
Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"“", "\"", RegexOptions.IgnoreCase);//保留【 “ 】的标点符合
Htmlstring = Regex.Replace(Htmlstring, @"”", "\"", RegexOptions.IgnoreCase);//保留【 ” 】的标点符合
Htmlstring.Replace("<", "");
Htmlstring.Replace(">", "");
Htmlstring.Replace("\r\n", "");
}
return Htmlstring;
}
/// <summary>
/// 去掉空行
/// </summary>
/// <param name="content"></param>
/// <returns></returns>
public static string RemoveEmptyLine(string content)
{
StringBuilder sb = new StringBuilder();
string[] lines = content.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
string tmp;
foreach (string s in lines)
{
tmp = s.Trim();
if (String.IsNullOrEmpty(tmp) || String.IsNullOrWhiteSpace(tmp))
continue;
else
sb.AppendLine(tmp);
}
return sb.ToString();
}
}
}
参考文档:
HtmlAgilityPack编程 - 使用DocumentNode.InnerText去除HTML标签-C/S开发框架
C#使用正则表达式移除所有的Html标记,返回纯文本-C/S开发框架
CSFrameworkV6快速开发框架 | 使用PostgreSql 数据库测试报告|C/S开发框架
使用Photoshop PS制作GIF动画(等待窗体GIF图标)|C/S开发框架
达梦数据库使用DmBulkCopy批导数据解决方案|C/S开发框架
ISID字段介绍,能直接用ISID字段作为主键使用吗?|C/S开发框架
CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
代码生成器 CodeGenerator V6.1 | 提供两种生成报表策略(表格/标签,TableObject/TextObject)|C/S开发框架
C/S结构快速开发框架使用的DevExpress常用组件|C/S开发框架
DevExpress XtraTable组件调整TabPage标签页的顺序|C/S开发框架
Winform软件开发框架使用DevExpress组件有那些优势?|软件平台
HtmlAgilityPack编程 - 替换样式(style)的值-C/S开发框架
HtmlAgilityPack编程 - HtmlDocument删除html的样式-C/S开发框架
C# ASP.NET使用ashx一般处理程序实现上传文件功能-C/S开发框架
在ASP.NET Core web API中使用Swagger/OpenAPI(Swashbuckle)-C/S开发框架
HtmlAgilityPack编程 - 使用DocumentNode.InnerText去除HTML标签-C/S开发框架
C#使用正则表达式移除所有的Html标记,返回纯文本-C/S开发框架
CSFrameworkV6快速开发框架 | 使用PostgreSql 数据库测试报告|C/S开发框架
使用Photoshop PS制作GIF动画(等待窗体GIF图标)|C/S开发框架
达梦数据库使用DmBulkCopy批导数据解决方案|C/S开发框架
ISID字段介绍,能直接用ISID字段作为主键使用吗?|C/S开发框架
CSFramework软件开发框架 | 使用扩展角色实现自定义权限控制|C/S开发框架
达梦数据库 | 使用DM数据迁移工具迁移CSFrameworkV6数据库|C/S框架网|C/S开发框架
代码生成器 CodeGenerator V6.1 | 提供两种生成报表策略(表格/标签,TableObject/TextObject)|C/S开发框架
C/S结构快速开发框架使用的DevExpress常用组件|C/S开发框架
DevExpress XtraTable组件调整TabPage标签页的顺序|C/S开发框架
Winform软件开发框架使用DevExpress组件有那些优势?|软件平台
HtmlAgilityPack编程 - 替换样式(style)的值-C/S开发框架
HtmlAgilityPack编程 - HtmlDocument删除html的样式-C/S开发框架
C# ASP.NET使用ashx一般处理程序实现上传文件功能-C/S开发框架
在ASP.NET Core web API中使用Swagger/OpenAPI(Swashbuckle)-C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
