HtmlAgilityPack读取html中的问题

.net c# html html-agility-pack parsing

我正在阅读C#中的网站并获取内容为字符串....有些网站没有格式良好的html结构。

我正在使用HtmlAgilityPack,在这种情况下给我问题。

你们可以建议我使用什么,以便它可以读取整个字符串,我可以得到有用的信息?

这是我的代码

 htmlDoc.LoadHtml(s);
  if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)

为什么这个IF条件适用于我的情况

一般承认的答案

你得到的错误是什么?是抛出异常还是只是想看错误?很难说出你的实际问题是什么。

您可以使用HtmlDoc.ParseErrors属性在HTML中查看标记错误并迭代它们。这将为您提供行号,代码和错误类型。

您可以在https://stackoverflow.com/a/5367455/235644上查看有关此属性的更多信息

编辑

好的,所以自从我的回复以来你已经更新了你的问题。您可以通过循环遍历.ParseErrors来查看在IF语句中返回true的特定错误。

第二次编辑

您可以像这样循环错误:

 foreach (var error in htmlDoc.ParseErrors)
 {
      Debug.WriteLine(error.Line);
      Debug.WriteLine(error.Reason);
 }

热门答案

如果您的html是外部的并且您无法修复它,您可以先通过清理预处理器运行它,然后使用HtmlAgilityPack解析它。

这将尝试在HtmlAgilityPack查看之前自动修复尽可能多的问题。最流行的HTML清理工具是Tidy。请在此处查看.NET版本:

http://sourceforge.net/projects/tidynet/



许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因