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合法嗎? 是的,了解原因