En travaillant sur Android SDK, c'est Java moins certaines choses.Extraire tout sauf les balises d'une page Web sans analyseur - en utilisant un scanner et une regex?
J'ai une solution qui extrait deux motifs regex à partir de pages Web. Les problèmes que j'ai, c'est que c'est de trouver des choses dans les balises HTML. J'ai essayé jTidy, mais c'était trop lent sur Android. Je ne sais pas pourquoi, mais ma solution de rechange Scanner regex le fouille plusieurs fois.
actuellement, je prends la source de la page dans un IntputStream
is = uconn.getInputStream();
et le match et l'extrait comme ceci:
Scanner scanner = new Scanner(in, "UTF-8");
String match = "";
while (match != null) {
match = scanner.findWithinHorizon(extractPattern, 0);
if (match != null) {
String matchit = scanner.match().group(grp);
cela fonctionne très bien et est rapide.
Mon modèle regex est déjà un peu fou, en fait deux modèles dans un ou comme celui-ci (p1 | p2)
Toutes les idées sur la façon dont je le fais «mais pas à l'intérieur des balises HTML » ou exclure des balises HTML au début ? Si je peux exclure des balises HTML de ma source, cela accélèrera considérablement mon interface car j'ai d'autres choses à faire avec les données brutes.
Rien de tel que [parsing HTML le chemin Cthulhu] (http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html), hein? – NullUserException