Comment extraire le texte significatif de HTML
-
09-10-2019 - |
Question
Je voudrais analyser une page html et extraire le texte significatif de celui-ci. Tout le monde connaît quelques bons algorithmes pour le faire?
je développe mes applications Rails, mais je pense que Ruby est un peu lent dans ce domaine, donc je pense que si existe une bonne bibliothèque c pour cela, il serait approprié.
Merci !!
PD: S'il vous plaît ne recommande pas quoi que ce soit avec java
Mise à jour: J'ai trouvé ce texte lien
Malheureusement, est en python
La solution
Nokogiri , qui est rapide et écrit en C , Ruby.
(en utilisant regexp pour analyser les expressions récursives comme HTML est notoirement difficile et sujette aux erreurs et je ne pas aller dans cette voie . Je ne mentionne que cela dans la réponse que cette question semble surgir encore et encore.)
Avec un vrai analyseur comme par exemple Nokogiri mentionné ci-dessus, vous obtenez également l'avantage supplémentaire que la structure et la logique du document HTML est conservé, et parfois vous avez vraiment besoin de ces indices.
Autres conseils
Solutions intégrant avec Ruby
Solutions externes
- Si votre code HTML est bien formé, vous pouvez utiliser le Expat XML Parser pour cela.
- Pour quelque chose de plus ciblé vers HTML uniquement, le W3C a publié en fait le code pour le LibWWW , qui contient un analyseur simple HTML ( documentation ).
rel="nofollow">. Ceci est open source si vous voulez jeter un coup d'oeil.
Vous devriez enlever toute la partie d'angle entre crochets du texte et l'effondrement alors des espaces blancs.
En théorie, le <
et >
ne devraient pas être là dans d'autres cas. Pages contiennent <
et >
partout au lieu de les.
Collapsing espaces blancs. Convertissez tous les TAB, saut de ligne, etc à des espaces, puis remplacer chaque séquence d'espaces en un seul espace
MISE À JOUR:. Et vous devriez commencer après avoir trouvé la balise <body>