Foros del Web » Programación para mayores de 30 ;) » Java »

Intentando obtener fuente HTML

Estas en el tema de Intentando obtener fuente HTML en el foro de Java en Foros del Web. Básicamente quiero hacer un programa para automatizar una tarea que considero un tanto tediosa en una página... para ello solo quiero obtener el codigo html ...
  #1 (permalink)  
Antiguo 20/12/2010, 06:10
 
Fecha de Ingreso: marzo-2008
Mensajes: 43
Antigüedad: 16 años, 1 mes
Puntos: 1
Intentando obtener fuente HTML

Básicamente quiero hacer un programa para automatizar una tarea que considero un tanto tediosa en una página... para ello solo quiero obtener el codigo html fuente de dicha página. Hago lo siguiente...

Código:
try {
     // Create a URL for the desired page
     URL url = new URL("http://hostname:80/index.html");
     // Read all the text returned by the server
     BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
     String str;
     while ((str = in.readLine()) != null) {
          // str is one line of text; readLine() strips the newline character(s)
     } 
     in.close(); 
} catch (MalformedURLException e) {

} catch (IOException e) {

}
El código lo cogí de por ahí pero me sirve... solo que quiero hacerlo de la web de SeriesYonkis y esta me devuelve la fuente de Google ¡WTF! No entiendo por que... hice varias pruebas y es la unica página que me devuelve eso sin embargo desde firefox inspecciono el codigo fuente y como podeis imaginar es la verdadera... la cual quiero trabajar con ella.

¿Alguna pista sobre lo que puede estar pasando?
Un saludo
  #2 (permalink)  
Antiguo 20/12/2010, 07:13
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Intentando obtener fuente HTML

dark_lock, yo te diría que trates de obtener el responseCode. Posiblemente haga algún redirect y por eso podés bajar el html.
  #3 (permalink)  
Antiguo 20/12/2010, 09:53
 
Fecha de Ingreso: marzo-2008
Mensajes: 43
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Intentando obtener fuente HTML

Gracias walterdevel por contestar pero no se muy bien a que te refieres con lo del responseCode... si que entiendo lo de la redirección por que me lo había temido pero no se como subsanar este problema...
Un saludo
  #4 (permalink)  
Antiguo 21/12/2010, 10:01
 
Fecha de Ingreso: diciembre-2010
Mensajes: 32
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Intentando obtener fuente HTML

Acá te paso un ejemplo:


int code = 0;

URL u = new URL(url);

URLConnection uc = u.openConnection();

HttpURLConnection httpConnection = (HttpURLConnection) uc;

code = httpConnection.getResponseCode();

httpConnection.disconnect();

Para seguir o no los redirects usas:

httpConnection.setFollowRedirects(true); (true o false obviamente)
  #5 (permalink)  
Antiguo 22/12/2010, 12:49
 
Fecha de Ingreso: marzo-2008
Mensajes: 43
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Intentando obtener fuente HTML

Gracias delrdlp,
con el objeto ese como saco el código fuente?
en tu codigo la varable code recoges el codigo de respuesta (200, 300, 400...)
Un saludo
  #6 (permalink)  
Antiguo 22/12/2010, 15:51
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Intentando obtener fuente HTML

Sería algo así:

String ret = "";
try{

URL u = new URL(from_url);
URLConnection uc = u.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) uc;


uc.addRequestProperty("User-Agent", "agente");//cambia esto, es para que no te detecten como bot

uc.setConnectTimeout(100000);// esto lo use así porque se desconectaba a veces
if(httpConnection.getResponseCode() != 200) {
return "";
}
httpConnection.setFollowRedirects(true);
ret = "";
BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String inputLine;

while ((inputLine = in.readLine()) != null) {
ret += inputLine;
}
in.close();
httpConnection.disconnect();
} catch(Exception e) {

}
return ret;
  #7 (permalink)  
Antiguo 23/12/2010, 07:30
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Intentando obtener fuente HTML

Si utilizas una librería de alto nivel como HtmlUnit o HttpUnit que encapsulan todo ese proceso, te ahorrarás muchos dolores de cabeza.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Etiquetas: html, fuentes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:22.