HtmlAgilityPack Problème lors de la lecture de HTML

.net c# html html-agility-pack parsing

Question

Je suis en train de lire des sites Web en C # et d’obtenir un contenu sous forme de chaîne.

J'utilise HtmlAgilityPack qui me donne problème dans ce cas.

Pouvez-vous me suggérer quoi utiliser pour qu'il puisse lire toute la chaîne et obtenir des informations utiles?

Voici mon code

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

Pourquoi cette condition IF est-elle vraie pour mon cas?

Réponse acceptée

Quelle est l'erreur que vous obtenez? Lance-t-il une exception ou voulez-vous simplement voir l'erreur? Difficile de dire quelle est votre question réelle.

Vous pouvez voir les erreurs de marquage dans le code HTML en utilisant la propriété HtmlDoc.ParseErrors et en effectuer une itération. Cela vous donnera le numéro de ligne, le code et le type d'erreur.

Vous pouvez voir plus d'informations sur cette propriété ici https://stackoverflow.com/a/5367455/235644

modifier

Ok, alors vous avez mis à jour votre question depuis ma réponse. Vous pouvez voir l'erreur spécifique qui renvoie true dans votre instruction IF en parcourant les .ParseErrors décrites ci-dessus.

Deuxième édition

Vous pouvez boucler les erreurs comme ceci:

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

Réponse populaire

Si votre code HTML est externe et que vous ne pouvez pas le réparer, vous pouvez d'abord l'exécuter via un pré-processeur de nettoyage, puis l'analyser avec HtmlAgilityPack .

Cela tentera de résoudre automatiquement autant de problèmes que possible avant que HtmlAgilityPack ne le voie. L'outil de nettoyage HTML le plus populaire est Tidy. Voir la version .NET ici:

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




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi