C# HTML Agility Pack

3
我们正在将一个电商网站迁移到新平台,因为他们所有的页面都是静态html,并且他们没有将所有的产品信息存储在数据库中,所以我们必须从他们当前的网站上抓取产品描述信息。
这是其中的一个页面:http://www.cabinplace.com/accrugsbathblackbear.htm 最好的方法是什么来将描述信息转换成字符串?我应该使用html agility pack吗?如果是,应该如何操作?因为我对html agility pack和xhtml不太熟悉。
谢谢。
2个回答

1

HTML Agility Pack是一种很好的库,适用于这种工作。

您没有指示所有内容是否都是这种结构,也没有说明您是否已经从HTML文件中获取了您发布的类型的片段,因此很难进一步提供建议。

通常,如果所有页面的结构类似,则我会使用XPath表达式提取段落并从每个页面选择innerHtmlinnerText

类似以下内容:

var description = htmlDoc.SelectNodes("p[@class='content_txt']")[0].innerText;

现在我正在做以下事情:string strHtml = wbOne.DocumentText; HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); doc.LoadHtml(strHtml); var description = doc.DocumentNode.SelectNodes("p[@class='content_txt']")[0].InnerText;然而,我收到了最后一行的此错误:Object reference not set to an instance of an object.有任何想法是为什么吗? - Clay
大多数情况下,所有页面的结构都是相同的。 - Clay
@Clay - XPath 可能没有返回任何结果。尝试使用 "//p[@class='content_txt']",但这可能会返回其他行。为了更有效地使用敏捷包,建议您熟悉 XPath。 - Oded

0

另外,

如果您需要一个好的工具来测试或查找HAP的Xpath,您可以使用这个: HTML-Agility-xpath-finder。它是使用相同的库制作的,因此如果您在此工具中找到了一个xpath,您就可以安全地在您的代码中使用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接