Ver Mensaje Individual
  #13 (permalink)  
Antiguo 14/03/2015, 02:28
Avatar de Profesor_Falken
Profesor_Falken
 
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 4 meses
Puntos: 182
Respuesta: Conseguir ciertos datos de una web.

Buenas,

En ningún momento habías dicho que debías sacar múltiples valores.

Cita:
Pattern pattern = Pattern.compile(">(.+?)</a></h2>");
La expresion que pones en ese ejemplo es incorrecta.


No has aclarado exactamente lo que quieres sacar, así que basándome en el pequeño ejemplo que has puesto antes, mi propuesta sería:

Código Java:
Ver original
  1. String content = "<div class=\"bloque margen\">"
  2.                 + "<a name=\"p4653\"></a><h2>"
  3.                 + "<a class=\"identidad\" href=\"categoria/4653/\" title=\"Limpiar\">"
  4.                 + "LO QUE QUIERO SACAR</a></h2>"
  5.                 + "<div class=\"bloque margen\">"
  6.                 + "<a name=\"p4653\"></a><h2>"
  7.                 + "<a class=\"identidad\" href=\"categoria/4653/\" title=\"Limpiar\">"
  8.                 + "LO QUE QUIERO SACAR 2</a></h2>"
  9.                 + "<div class=\"bloque margen\">"
  10.                 + "<a name=\"p4653\"></a><h2>"
  11.                 + "<a class=\"identidad\" href=\"categoria/4653/\" title=\"Limpiar\">"
  12.                 + "LO QUE QUIERO SACAR 3</a></h2>";
  13.  
  14.         //System.out.println(content);
  15.  
  16.         Pattern pattern = Pattern.compile("<a\\b[^>]*href=\"[^>]*>(.*?)</a></h2>");
  17.  
  18.         Matcher matcher = pattern.matcher(content);
  19.  
  20.         while (matcher.find()) {
  21.             System.out.println(matcher.group(1));
  22.         }

Estúdiate como funcionan las expresiones regulares o todo esto no te habrá servido de nada:
http://docs.oracle.com/javase/tutorial/essential/regex/
http://chuwiki.chuidiang.org/index.p...ulares_en_Java
http://www.mkyong.com/regular-expres...ar-expression/
http://www.javamex.com/tutorials/reg...l#.VQPxy9JwsRk
http://www.vogella.com/tutorials/Jav...s/article.html

Practica aquí:
http://www.regexplanet.com/advanced/java/index.html


Las expresiones regulares son similares y se utilizan en todos los lenguajes. Cuanto antes aprendas como funcionan, mejor.

Si quieres hacer cosas más complejas del tipo HTML scraping, utiliza herramientas más sofisticadas para no reinventar la rueda:

http://jsoup.org/
http://htmlunit.sourceforge.net/


Un saludo
__________________
If to err is human, then programmers are the most human of us