Quel HTML Parser est le meilleur?

Je code beaucoup de parseurs. Jusqu’à présent, j’utilisais le navigateur sans tête HtmlUnit pour l’parsing syntaxique et l’automatisation du navigateur.

Maintenant, je veux séparer les deux tâches.

Comme 80% de mon travail consiste simplement à parsingr, je veux utiliser un parsingur HTML léger car il faut beaucoup de temps dans HtmlUnit pour charger une page, puis obtenir la source et ensuite l’parsingr.

Je veux savoir quel parsingur HTML est le meilleur. L’parsingur serait mieux s’il est proche de l’parsingur HtmlUnit.


MODIFIER:

Au mieux, je veux au moins les fonctionnalités suivantes:

  1. La vitesse
  2. Facilité de localiser un HtmlElement par son “id” ou “name” ou “tag type”.

Ce serait bien pour moi si elle ne nettoie pas le code HTML sale. Je n’ai pas besoin de nettoyer une source HTML. J’ai juste besoin d’un moyen plus simple de traverser HtmlElements et de récolter des données.

Self plug: Je viens de publier un nouvel parsingur Java HTML: jsoup . Je le mentionne ici parce que je pense que cela fera ce que vous êtes après.

Son astuce est une syntaxe de sélecteur CSS pour trouver des éléments, par exemple:

Ssortingng html = "First parse" + "

Parsed HTML into a doc.

"; Document doc = Jsoup.parse(html); Elements links = doc.select("a"); Element head = doc.select("head").first();

Voir le sélecteur javadoc pour plus d’informations.

Ceci est un nouveau projet, donc toutes les idées d’amélioration sont les bienvenues!

Le meilleur que j’ai vu jusqu’à présent est HtmlCleaner :

HtmlCleaner est un parsingur HTML open-source écrit en Java. HTML trouvé sur le Web est généralement sale, mal formé et impropre à un traitement ultérieur. Pour toute consommation sérieuse de tels documents, il est nécessaire de commencer par nettoyer le désordre et d’apporter la commande aux balises, aux atsortingbuts et au texte ordinaire. Pour le document HTML donné, HtmlCleaner réorganise les éléments individuels et produit un XML bien formé. Par défaut, il suit des règles similaires à celles utilisées par la plupart des navigateurs Web pour créer un modèle d’object de document. Toutefois, l’utilisateur peut fournir des balises et des règles personnalisées pour le filtrage et l’équilibrage des balises.

Avec HtmlCleaner, vous pouvez localiser n’importe quel élément en utilisant XPath.

Pour les autres parsingurs HTML, voyez cette question SO .

Je suggère l’parsingur de Validator.nu , basé sur l’algorithme d’parsing HTML5. C’est l’parsingur utilisé dans Mozilla à partir du 2010-05-03