【发布时间】:2013-02-23 23:31:39
【问题描述】:
我正在尝试使用 SelectNodes 使用 HtmlAgilityPack 进行一些屏幕抓取,并从返回的每个节点获取一些值
这里是代码
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)都会出现内存泄漏;
【问题讨论】:
标签: c# web-scraping html-agility-pack