Comment puis-je analyser uniquement le texte d'une page Web à l'aide de jsoup en utilisant java?Comment analyser uniquement le texte à partir du HTML
Répondre
De cookbook jsoup: http://jsoup.org/cookbook/extracting-data/attributes-text-html
String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);
String text = doc.body().text(); // "An example link"
Eh bien, voici une méthode rapide j'ai jeté ensemble une fois. Il utilise des expressions régulières pour faire le travail. La plupart des gens seront d'accord que ce n'est pas une bonne façon de s'y prendre. SO, utilisez à vos risques et périls.
public static String getPlainText(String html) {
String htmlBody = html.replaceAll("<hr>", ""); // one off for horizontal rule lines
String plainTextBody = htmlBody.replaceAll("<[^<>]+>([^<>]*)<[^<>]+>", "$1");
plainTextBody = plainTextBody.replaceAll("<br ?/>", "");
return decodeHtml(plainTextBody);
}
Cela a été initialement utilisé dans mon wrapper pour l'API Stack Overflow. Donc, il a été testé uniquement sous un petit sous-ensemble de balises html.
Hmmm ... pourquoi n'utilisez-vous pas une simple expression rationnelle: 'replaceAll (" <[^>] +> "," ")'? – Crozin
@Crozin, eh bien, je me suis enseigné comment utiliser les back-références, je suppose. On dirait que le tien fonctionnerait probablement aussi. – jjnguy
ça fait mal! -> http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – sleeplessnerd
Utilisation des classes qui font partie du JDK:
import java.io.*;
import java.net.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
class GetHTMLText
{
public static void main(String[] args)
throws Exception
{
EditorKit kit = new HTMLEditorKit();
Document doc = kit.createDefaultDocument();
// The Document class does not yet handle charset's properly.
doc.putProperty("IgnoreCharsetDirective", Boolean.TRUE);
// Create a reader on the HTML content.
Reader rd = getReader(args[0]);
// Parse the HTML.
kit.read(rd, doc, 0);
// The HTML text is now stored in the document
System.out.println(doc.getText(0, doc.getLength()));
}
// Returns a reader on the HTML data. If 'uri' begins
// with "http:", it's treated as a URL; otherwise,
// it's assumed to be a local filename.
static Reader getReader(String uri)
throws IOException
{
// Retrieve from Internet.
if (uri.startsWith("http:"))
{
URLConnection conn = new URL(uri).openConnection();
return new InputStreamReader(conn.getInputStream());
}
// Retrieve from file.
else
{
return new FileReader(uri);
}
}
}
- 1. Comment analyser uniquement les caractères étrangers à partir du texte dans un fichier HTML avec des expressions régulières?
- 2. Comment filtrer le CDATA et obtenir uniquement le texte du HTML?
- 3. comment analyser les sites Web (texte uniquement) pendant l'analyse
- 4. Comment analyser HTML à partir d'un tableau JSON
- 5. C#: analyse du texte à partir de html
- 6. Comment analyser partiellement le HTML?
- 7. Comment créer du texte HTML à partir d'une application C#?
- 8. Comment analyser HTML à partir de JavaScript dans Firefox? (2)
- 9. Comment supprimer le texte cité à partir d'un e-mail et afficher uniquement le nouveau texte
- 10. jquery sélectionner le texte à partir du texte entre
- 11. Comment puis-je extraire du texte à partir de HTML en utilisant C++?
- 12. Comment analyser du texte avec des délimiteurs?
- 13. Texte brut justifié à partir du code HTML
- 14. Comment afficher du texte html dans BlackBerry?
- 15. Obtenir le texte du HTML
- 16. Charger un document html en javascript à partir du texte
- 17. Supprimer les tags spéciaux non HTML à partir du texte
- 18. comment convertir du texte HTML en texte brut?
- 19. Extraire l'URL de l'image à partir du texte HTML
- 20. analyser le texte avec Matlab
- 21. Comment analyser les données d'encodage à partir du flux RSS?
- 22. Analyser le texte avec Javascript
- 23. Comment analyser le HTML dans Rails?
- 24. capturer le numéro du texte html
- 25. Obtenir du texte brut à partir du texte démarqué
- 26. Comment calculer la taille du texte HTML à dessiner
- 27. Inputstream à partir du serveur WAP, analyser les parties
- 28. En utilisant PHP, comment analyser le titre et les balises META à partir d'une page HTML?
- 29. Comment analyser une date à partir d'un format d'URL?
- 30. Comment analyser un fichier texte arbitraire en utilisant uniquement le client en ligne de commande MySQL?
comment exclure des éléments invisibles? (par exemple, display: none) – Ehsan