使用html子字符串加速CsQuery选择器

使用html子字符串加速CsQuery选择器,html,html-parsing,web-scraping,html-parser,csquery,Html,Html Parsing,Web Scraping,Html Parser,Csquery,我想解析一些复杂/繁重的HTML页面。我最近阅读了CsQuery并检查了的性能比较。根据这些测试,CsQuery在创建DOM时由于其索引创建而变得较慢 假设我想选择一个沉重的html页面的某个元素(没有id),我知道它的祖先的id,我将使用它作为上下文元素。如果我将这个繁重的html加载到DOM中,它会很慢,因此我的选择会很慢。但是,如果我能够以某种方式快速预处理html,并获取包含上下文元素(我知道该ID)的子字符串并将其加载到DOM中,那么速度会更快。在这种情况下,我将摆脱许多不需要的HTM

我想解析一些复杂/繁重的HTML页面。我最近阅读了CsQuery并检查了的性能比较。根据这些测试,CsQuery在创建DOM时由于其索引创建而变得较慢

假设我想选择一个沉重的html页面的某个元素(没有id),我知道它的祖先的id,我将使用它作为上下文元素。如果我将这个繁重的html加载到DOM中,它会很慢,因此我的选择会很慢。但是,如果我能够以某种方式快速预处理html,并获取包含上下文元素(我知道该ID)的子字符串并将其加载到DOM中,那么速度会更快。在这种情况下,我将摆脱许多不需要的HTML,而不会为它们创建索引器。因此,我的选择会更快

我使用CsQuery是因为我想要JQuery这样的东西

我的问题是:


给定一个HTML文档字符串:是否有一种快速方法(例如:线性)来获取给定id的HTML元素的HTML子字符串

首先让我说,我认为您使用CsQuery做出了正确的选择,我不久前从HAP切换到了它,我对这个切换感到非常高兴。 CsQuery的最新预发行版允许您完全关闭索引,或者只对代码进行部分索引

从问题追踪器

在当前的预发布代码中,您可以使用另一种索引策略,以牺牲复杂查询为代价,大大加快DOM构建速度。(实际上有两种新策略,如果你真的想关闭索引,你可以完全关闭:)这可能更适合你正在处理的场景

如果您愿意从其存储库下载代码并进行编译,那么使用预发行版就可以做到这一点


该类包含3个选项,
RangedDomIndexProvider
,它为许多选择器编制索引,并且非常聪明
SimpleDomIndexProvider
,它允许基本索引,而
NoDomIndexProvider
根本不做索引。很简单,可能在你的情况下工作,你也可以考虑。

这个新版本也可以在NuGET上使用,如果你“包括PraseLeress”你能让我的建议有效吗?