htmlagilitypack - 删除脚本和样式?

2024-03-27

我使用以下方法从 html 中提取文本:

    public string getAllText(string _html)
    {
        string _allText = "";
        try
        {
            HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
            document.LoadHtml(_html);


            var root = document.DocumentNode;
            var sb = new StringBuilder();
            foreach (var node in root.DescendantNodesAndSelf())
            {
                if (!node.HasChildNodes)
                {
                    string text = node.InnerText;
                    if (!string.IsNullOrEmpty(text))
                        sb.AppendLine(text.Trim());
                }
            }

            _allText = sb.ToString();

        }
        catch (Exception)
        {
        }

        _allText = System.Web.HttpUtility.HtmlDecode(_allText);

        return _allText;
    }

问题是我还得到脚本和样式标签。

我怎样才能排除他们呢?


HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);

doc.DocumentNode.Descendants()
                .Where(n => n.Name == "script" || n.Name == "style")
                .ToList()
                .ForEach(n => n.Remove());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

htmlagilitypack - 删除脚本和样式? 的相关文章

  • getline 之后返回到文件开头

    所以我已经从文件中读取了所有行 while getline ifile line logic 其中 ifile 是 ifstream line 是字符串 我的问题是我现在想再次使用 getline 并且似乎无法返回到文件的开头 因为运行 c
  • 如何通过覆盖 MSBuild 目标来防止外语资源生成?

    我正在致力于减少大型 C ASP NET 解决方案的编译时间 我们的解决方案使用通常的 resx 文件方法翻译成大约十几种外语 这些资源文件的解析和编译极大地减慢了我们的编译时间 并且是日常的挫败感 我知道可以创建自定义资源提供程序并摆脱
  • Qt/c++ 随机字符串生成[重复]

    这个问题在这里已经有答案了 我正在创建一个应用程序 需要生成多个随机字符串 几乎就像一个由一定长度的 ASCII 字符组成的唯一 ID 这些字符混合有大写 小写 数字字符 有没有 Qt 库可以实现这一点 如果没有 在纯 C 中生成多个随机字
  • Winform DatagridView 数字列排序

    我只使用一个简单的 DataGridView 来保存一堆数据 有趣的是 我在特定列中有小数 但是当按小数列排序时 它的排序是错误的 例如 起始顺序可能是 0 56 3 45 500 89 20078 90 1 56 100 29 2 39
  • 对 ExecuteNonQuery() 的单次调用是原子的

    对 ExecuteNonQuery 的单次调用是否是原子的 或者如果单个 DbCommand 中有多个 sql 语句 那么使用事务是否有意义 请参阅我的示例以进行说明 using var ts new TransactionScope us
  • C# 中 PKCS11Interop 库的线程安全使用 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 PKCS11Interop 在 HSM 内执行密钥管理操作 我使用的 HSM 是 Thales PCI Express 下面是
  • C# 中的抽象类和接口类有什么不同?

    C 中的抽象类和接口类有什么不同 An 接口不是类 它只是一个contract定义了public一个类的成员must实施 抽象类只是一个类 您从中可以cannot创建一个实例 通常您会使用它来定义一个基类 该基类定义了一些virtual方法
  • 模板与非模板类,跨编译器的不同行为

    我在一些应用程序中使用编译时计数器 它确实很有用 昨天我想用 gcc 编译一个程序 我之前使用的是 msvc 并且计数器的行为在模板类中发生了变化 它在模板类中不再工作 过于简化的代码 Maximum value the counter c
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • ASP.net WebForms - 在标记中使用 GetRouteUrl

    我一直在尝试弄清楚如何将路由功能与 ASP net 4 0 WebForms 一起使用 我将一条路线添加到我的路线集合中 void Application Start RegisterRoutes RouteTable Routes voi
  • 节点*链表中的下一个

    我是数据结构和算法的新手 我遇到了以下代码 typedef struct node int data node next 谁能告诉我为什么我们要声明节点 next next 不能声明为 int next 吗 因为你希望能够做到n gt ne
  • 使用 dateTimePicker 在 DataGridView 中编辑日期

    我有一个DateTime我的 WinForms 中的专栏DataGridView 目前只能通过手动输入日期来编辑该字段 例如 2010 09 02 需要什么才能拥有一个DateTimePicker 或同等 用作编辑器 DataGridVie
  • 在特定线程上运行工作

    我想要一个特定的线程 任务队列并在该单独的线程中处理任务 应用程序将根据用户的使用情况创建任务并将其排队到任务队列中 然后单独的线程处理任务 即使队列为空 保持线程活动并使用它来处理排队任务也至关重要 我尝试过几种实现TaskSchedul
  • 实体框架读取列但阻止其更新

    给定一个数据库表 其中有一列包含历史数据但不再填充 实体框架中是否有一种方法可以读取该列 但在使用相同的模型对象时防止它被更新 例如我有一个对象 public class MyObject public string CurrentData
  • 'iter' 的名称查找已更改为新的 ISO 'for' 范围

    我正在尝试编译下面的两个文件 但从编译器收到错误消息 gcc 4 3 3 Linux 错误位于带有以下符号的行 LINE WITH ERROR 我做错了什么 我该怎么改变 路易斯 g c b h b cpp b cpp In functio
  • C - 获取外部IP地址

    我需要通过 C C 调用获取我的公共 IP 地址 我知道作为替代方案 我可以从 http whatismyip akamai com 等外部链接获取 我写了一个示例来获取外部IP地址 但我的程序没有返回外部 IP 地址 我正在获取内部 IP
  • C# PasswordDeriveBytes:似乎 Salt 并不重要

    可能我误解了什么 以下代码通过 CryptDeriveKey 使用两种不同的盐生成两个相等的密钥 这是控制台结果 盐1 21 3e 18 a3 9a 8b 5f gt 键 da 89 ea 3d 91 08 20 98 20 e9 dc 4
  • 在 C# 中使用自定义千位分隔符

    在显示字符串时 我尝试不使用 字符作为千位分隔符 而是使用空格 我想我需要定义一种自定义文化 但我似乎做得不对 有什么指点吗 例如 将 1000000 显示为 1 000 000 而不是 1 000 000 no String Replac
  • 在 LP2844Z(Zebra 打印机)上的收据中包含 PNG [重复]

    这个问题在这里已经有答案了 我正在致力于创建一个基于 HTML5 画布的签名 绘图框 目前我们在服务器上将画布保存为PNG 但可以轻松地将base64字符串保存在数据库中 现在的问题是我们如何在打印的收据上添加签名 目前我们使用 GF 字段
  • 如何通过API退出Win32应用程序?

    我有一个使用 Win32 API 编写的 C Win32 应用程序 我希望强制它在其中一个函数中退出 有没有类似的东西Exit or Destroy or Abort 类似的东西会终止它吗 哎呀呀呀呀呀呀 不要做任何这些事情 exit 和

随机推荐

  • 警告:没有 xauth 数据;使用虚假身份验证数据进行 X11 转发

    在从 Fedora 23 到 Centos 7 进行 ssh 连接时 我遇到了一个不幸的问题 命令ssh X user centos7 and ssh Y user centos7两者都打印警告 没有 xauth 数据 使用伪造的身份验证数
  • django escapejs 和 simplejson

    我正在尝试使用 simplejson dumps 将 Python 数组编码为 json In 30 s1 test
  • 如何将PIL图像传递给python-pptx中的Add_Picture

    我正在尝试从剪贴板获取图像 并且想将该图像添加到 python pptx 中 我不想将图像保存在磁盘中 我已经尝试过这个 from pptx import Presentation from PIL import ImageGrab Ima
  • 使眼镜蛇命令标志成为必需

    我创建了一个 cobra 命令并添加了一个标志 cmd Flags StringVarP primaryIP primary ip p Help text 除了自己检查值并返回错误之外 还有其他方法可以使其成为必需吗 几个月前 这种行为发生
  • 类型错误:write() 参数必须是 str,而不是 _io.TextIOWrapper

    如何将一个文件复制到另一个文件 我使用的代码是 FileX open X txt r FileY open Y txt w X FileX FileY write FileX FileX close FileY close 这给出了错误 T
  • 数据库子类型/超级类型[重复]

    这个问题在这里已经有答案了 我有 农作物 玉米 大豆 和 谷物 表 Crop 中的一个条目对应于其他表之一中的单个条目 裁剪应仅与其他一张表一对一 但不得超过一张 Crop 表是必需的 因为它结合了其他表中的许多通用数据 并使代码端的信息查
  • 将双精度值转换为二进制值

    如何将双精度值转换为二进制值 我有一些像下面这样的值 125252525235558554452221545332224587265 我想将其转换为二进制格式 所以我将其保留为双精度 然后尝试转换为二进制 1 0 s 我正在使用 C net
  • 如何缓存或预加载SKLabelNode字体?

    我正在制作一个 Sprite Kit 应用程序 并在我的场景中添加了一个 SKLabelNode 当我加载 SKScene 时 我注意到有一个相当大的滞后峰值 在对应用程序进行分析后 我发现它来自于使用纸莎草字体创建 SKLabelNode
  • 如何使用 python 读取专辑封面? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在我的搜索中 我发现有一些库可以通过读取 ID3 标签来做到这一点 如果是这样 哪一个最好用 我不打算
  • 将委托定义为函数指针

    我正在使用调用非托管函数指针的委托 这会导致垃圾收集器在使用之前对其进行收集 如 MSDN 上的 CallbackOnCollectedDelegate MDA 页面中所述 CallbackOnCollectedDelegate MDA 的
  • 在 WPF (MVVM) 中动态更改窗口的用户控件

    我是新来的WPF我只是用做一个简单的菜单MVVM with bindings and commands但我想我做错了什么 我只想更改所有窗口内容导入新的UserControl我定义了 每次按下菜单按钮时 这意味着我想消失菜单并显示新内容 我
  • mongodb 聚合 $lookup 与查找和填充

    我有一个像这样的视频架构 const VideoSchema new mongoose Schema caption type String trim true maxlength 512 required true owner type
  • 为什么应用程序突然关闭而没有显示任何错误?

    我的应用程序有什么作用 该应用程序正在从照片库中选择一张照片 我的问题是什么 一旦我从图库中选择照片 它就会毫无错误地关闭 我做了什么 我增加了设备的内存 但它不起作用 我把它从项目中取出来 活动运行良好 然后又回到了活动中 主要问题是什么
  • Python Ctypes Null 终止字符串块

    我正在使用 ctypes 实现使用登录创建进程 http msdn microsoft com en us library ms682429 aspx 一切正常 除了我不知道如何处理这一部分 指向新进程的环境块的指针 如果该参数为NULL
  • 如何处理 RxJava 中 Observable 中的 map() 中的异常

    我想做这个 Observable just bitmap map new Func1
  • HttpContext.Current.Request.ServerVariables["HTTP_REFERER"] null

    我正在尝试使用以下代码来获取 global asax session start 中的引用 url HttpContext Current Request ServerVariables HTTP REFERER 我尝试使用Request
  • 将默认 Python 版本从 2.4 更改为 2.6

    我想使用一些需要 Python 的新软件2 6 我们目前都有2 4 and 2 6安装在我们专用的 CentOS 服务器上 如下所示 which python usr local bin python which python2 6 usr
  • Javascript 倒计时每周六上午 11 点

    我有一个请求 要求它看起来与我在这里找到的大多数答案略有不同 我正在寻找一个 Javascript 倒计时时钟 它根据服务器的时钟在每周六上午 11 点重复 但服务器位于 CA 并且时钟需要为 EST 我分叉了另一个时钟作为开始 但是当涉及
  • 方法“train_test_split”中的参数“stratify”(scikit Learn)

    我正在尝试使用train test split来自 scikit Learn 包 但我在参数方面遇到问题stratify 以下是代码 from sklearn import cross validation datasets X iris
  • htmlagilitypack - 删除脚本和样式?

    我使用以下方法从 html 中提取文本 public string getAllText string html string allText try HtmlAgilityPack HtmlDocument document new Ht