我正在尝试使用 HtmlAgilityPack 进行一些屏幕抓取,SelectNodes
并从返回的每个节点获取一些值
这是代码
private readonly HtmlDocument _document = new HtmlDocument();
public void ParseValues(string html)
{
_document.LoadHtml(html);
var tables = _document.DocumentNode.SelectNodes("//table");
foreach (var table in tables)
{
_document.LoadHtml(table.OuterHtml);
var value = _document.DocumentNode.SelectSingleNode("//tbody[1]/tr/td[0]");
}
}
但是我注意到,当尝试在 foreach 循环中选择子项时,它实际上是从文档根目录中搜索的。真的很烦人的东西。
问题:
有没有一种方法可以从返回的每个表中选择值,
SelectNodes
而无需创建新的文档实例HtmlDocument
?有没有办法处理
HtmlDocument
,因为我注意到每次使用都有内存泄漏_document.LoadHtml(html)
;