Analyse HTML pour obtenir du contenu à l'aide de C#
Je suis en train d'écrire une application qui analyse un groupe de mes pages web. Plutôt que de prendre la totalité du code source de la page je voudrais profiter de tout le contenu et les conserver et être capable de stocker de la page de texte en clair dans une base de données. Le contenu sera utilisé dans d'autres applications et pas lu par les utilisateurs donc il n'y a pas besoin d'être parfaitement lisible.
Au début, je pensais à l'aide d'expressions régulières, mais je n'ai pas de contrôle sur la validité des pages web, et il ya une grande chance qu'aucune expression régulière pourrait me donner le contenu.
Si j'ai le code source à l'intérieur d'une chaîne, comment puis-je activer cette chaîne de code source dans le contenu en C#?
pourquoi ne pas u "XML" les analyser ? de cette façon vous pouvez lire les nœuds et prendre juste le contenu ... mais je ne suis pas sûr si d'analyse XML peut lire à fermeture automatique des balises ..
XML supporte l'auto-fermeture des balises, mais malheureusement, beaucoup de soi-disant documents HTML, malheureusement, contiennent beaucoup de mal formés balises.
thx pour l'info 🙂
Assez bien "juste le texte", bien que je ne serais pas d'accord que le code HTML est le contenu que pour moi il ne sert que de la structure et il serait inutile de le stocker.
OriginalL'auteur Mike B | 2010-01-10
Vous devez vous connecter pour publier un commentaire.
Il n'est pas 100% clair ce que vous voulez, mais je suis en supposant que vous souhaitez que le texte de moins de balisage; donc:
Lorsque j'utilise ce code pour l'analyse de la page d'accueil de google dans la recherche de texte tout ce que j'obtiens est des tonnes de javascript. De toute façon à l'éviter ?
c'est de cette façon que vous retirez JavaScrip et CSS pour le contenu de la page: stackoverflow.com/questions/13441470/...
OriginalL'auteur Marc Gravell
S'il vous plaît, s'il vous plaît ne pas analyser HTML vous-même! Vous ne pouvez pas utiliser un regex pour analyser HTML - il n'est pas possible.
Il y a des tonnes de bibliothèques libres. L'un des meilleurs dans le monde .NET est le HTML Agility Pack.
HTML Agility Pack prend en charge des documents mal formés, ce qui est quelque chose qu'une regex ou autre base de l'analyse tels que XML ne sera presque jamais le faire.
OriginalL'auteur Eilon
Ci-dessous la fonction aidera à supprimer toutes les balises HTML, les scripts, css, styles de chaîne html et de le convertir en texte brut. l'affichage de la source
OriginalL'auteur alin0509
J'ai écrit le code pour en extraire le texte brut à partir de la majoration et de le présenter dans mon article Convertir HTML pour Texte. Le code présenté est assez simple et léger.
J'ai aussi écrit un léger analyseur HTML et l'ai posté sur Github comme HTML Singe. Ce serait une solution plus complète et ce serait une tâche simple pour convertir l'analyse de balisage pour obtenir uniquement le texte. Je suis toujours à travailler sur ce projet et je suis à la recherche de commentaires sur la façon dont il fonctionne.
OriginalL'auteur Jonathan Wood