Buscar
Social
Ofertas laborales ES

Soporte de javaHispano > Recoger datos de una url

Hola,
tengo que recoger unos datos de una url. Estoy probando con un código de ejemplos que he ido encontrando:
URL url;
try {
url = new URL("http://http://www.eltiempo.es/valencia.html");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
BufferedWriter out = new BufferedWriter(new FileWriter("C:\\temperaturas.txt"));
char[] cbuf=new char[255];
while ((in.read(cbuf)) != -1) {
out.write(cbuf);
}
in.close();
out.close();


} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

Así consigo leer la web y gurdarla en un txt (posiblemente ni lo necesite). Quiero recorrer lo que leo y sacar la temperatura max. y min. de cada dia que muestra esta pagina.
1. - No entiendo muy bien este trozo de código:
char[] cbuf=new char[255];
while ((in.read(cbuf)) != -1)
{....}
2.- Me gustaía guardar lo que lee el BufferedReader en memoria y no guardar nada en disco.
3.- Tampoco se como recorrer lo que recojo de la web (el html completo) para extraer de ahí los datos que quiero de los tags HTML.

La verdad no tengo mucha idea como se puede ver. Agradecería algunas pistas de como proceder.
Gracias ...

junio 17, 2012 | Registered Commenternecora11

Puedes usar expresiones regulares para obtener lo que quieres por ejemplo supongamos que queremos la fecha de alguna pagina entonces pongamos el ejemplo

11/07/2012 = \d{2}/\d{2}/\d{4}

para poder usar las expresiones regulares puedes usar pattern y matcher supongamos que seria este ejemplo

//definimos que buscaremos
String buscar = "\d{2}/\d{2}/\d{4}";

//Usamos marcher y le decimos que pattern busque lo que definimos en buscar y si lo encontramos y lo pase a string

Matcher encontrado = Pattern.compile(buscar).encontrado(response.toString());

//usamos while y le decimos que busque todos los que coincidan con nuestra busqueda
while (matcher.find()) {

//lo impirmimos
System.out.print(matcher.group())
}

saludos :D

julio 11, 2012 | Unregistered CommenterSlider324

jejeje un error:

while (matcher.find()) {

por esto

while(econtrados.find()){
}

julio 11, 2012 | Unregistered CommenterSlider324