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

Obtener Código HTML de una Web

Estas en el tema de Obtener Código HTML de una Web en el foro de Java en Foros del Web. Hola a todos. A ver, necesito extraer a través de Java el código HTML de una web. El caso es que lo he conseguido pero ...
  #1 (permalink)  
Antiguo 16/04/2013, 03:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Obtener Código HTML de una Web

Hola a todos.

A ver, necesito extraer a través de Java el código HTML de una web. El caso es que lo he conseguido pero obtengo un código que no es el que necesito.

No sé si conoceis el programa Firebug. Es un programa que os dice el código html de cada uno de los elementos de una página web. Concretamente busco información sobre varios elementos de una web y para mi sorpresa no aparecen por ningún lado. Creo que en su lugar aparecen varios "<script>" en su lugar. Por tanto creo que se ejecutan estos cuando cargas la página y no me hacen ver lo que quiero realmente.

A ver, la página web donde quiero extraer información es la siguiente:

http://origin-www.computer.org/portal/web/search/advanced?p_p_id=searchadvanced_WAR_pluginssearch_I NSTANCE_eO7R&p_p_lifecycle=1&p_p_state=normal&p_p_ mode=view&p_p_col_id=column-1&p_p_col_count=1.

salen varios cuadros con información cada uno pero no me aparece lo que quiero extraer de cada uno de ellos en el código html.

¿Existe alguna manera en Java de obtener el mismo código que lo obtengo sin problemas con Firebug? Es que tampoco sé si se puede ejecutar Firebug o algo parecido desde Java.

Tampoco sé si es un tema apropiado para este tema de foro. Tengo muchas dudas como podéis ver, así que os pido perdón de antemano por mis dudas.

Gracias de antemano y un saludo.

Última edición por angelo087; 16/04/2013 a las 04:36
  #2 (permalink)  
Antiguo 16/04/2013, 04:58
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Obtener Código HTML de una Web

Si la pagina tiene jquery podrías hacerlo fácil con:

var codigoHtml = $('html').html();
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #3 (permalink)  
Antiguo 16/04/2013, 05:21
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Obtener Código HTML de una Web

Gracias por tu respuesta.

¿Cómo podría ejecutar JQuery desde Java? No controlo muy bien JQuery...
  #4 (permalink)  
Antiguo 16/04/2013, 05:33
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Obtener Código HTML de una Web

jQuery es javascript, y como tal, debería estar entre las librerías javascript de la página con la que deseas trabajar, e importado en la cabecera como el resto de scripts.

Si no puedes modificar esa página para incorporarle jquery vas aviado, sólo te quedaría probar cosas como estas:

http://blog.codehangover.com/read-ht...s-to-do-to-it/
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #5 (permalink)  
Antiguo 16/04/2013, 05:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Obtener Código HTML de una Web

Hola:

Si el código html se genera de forma dinámica con javascript, va a ser complejo que puedas obtenerlo desde java, puesto que necesitarías cargar la página (supongo que como estás haciendo ahora) y ejecutar ese código javascript.

Aunque java permite ejecutar cosas en javascript (aquí tienes un ejemplo para evaluar una expresión matemática http://chuwiki.chuidiang.org/index.p...9ticas_en_java ), sería complejo, puesto que tienes que meter todas las variables propias de un navegador que use el javascript (document al menos, etc, etc) con las funciones que estas implementan (getElementById(), por ejemplo).

En fin, no es sencillo, no se me ocurre una solución fácil.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 16/04/2013, 05:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Obtener Código HTML de una Web

FuzzyLog, Con ese último enlace que has puesto es como he sacado el código que a priori no me sirve.

Lo que dudo ahora es como desde Java saco el código HTML a través de JavaScript como tú dices. Estoy indagando pero no encuentro mucha información fiable.

¿Se puede hacer esto que digo?
  #7 (permalink)  
Antiguo 16/04/2013, 06:31
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Obtener Código HTML de una Web

Échale un vistazo a esto:

http://docs.oracle.com/javase/tutori...ngWriting.html

Yo tampoco entiendo bien que es lo que deseas obtener, si la página web es tuya y puedes modificar su código o es de terceros y quieres una aplicación que la acceda y mire su código. Si entiendes que jQuery (javascript) es parte del navegador cliente mientras que java es código ejecutado por el servidor donde se aloja la aplicación... y otras tantas cosas.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #8 (permalink)  
Antiguo 16/04/2013, 07:29
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Obtener Código HTML de una Web

A ver...creo que sé cuál es el problema.

Si os metéis en el enlace:

http://origin-www.computer.org/portal/web/search/advanced?p_p_id=searchadvanced_WAR_pluginssearch_I NSTANCE_eO7R&p_p_lifecycle=1&p_p_state=normal&p_p_ mode=view&p_p_col_id=column-1&p_p_col_count=1

Sale un formulario para rellenar, y al aceptar te sale a continuación todos los resultados...yo copié el enlace de cuando tiene los resultados, que curiosamente, es el mismo que si no haces ninguna búsqueda...por tanto es normal que no salga el código que yo quiero

Si no, probad a poner cualquier cosa y los resultados se muestran abajo...con firebug puedo ver sus códigos pero no de la forma que lo estaba haciendo yo...

La página no es mía. ¿Cómo podría abordar esos datos? ¿tendría que ejecutar esos scripts o algo?

Ando bastante perdido...estoy mirando los enlaces que me habeis pasado a ver si me da alguna idea...

Si se os ocurre algo decidmelo
  #9 (permalink)  
Antiguo 27/04/2013, 03:45
 
Fecha de Ingreso: marzo-2010
Mensajes: 29
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Obtener Código HTML de una Web

Hola de nuevo a todos.

Después de varios días sin dar señales de vida creo haber obtenido la solución y me gustaría compartirla con vosotros.

Hice uso de HTMLUnit. Son unas librerías que puedes usar desde java para conectarte a cualquier página web y realizar lo que desees como si estuvieras delante del propio navegador.

Esta técnica es lo que se conoce como "web scrapping" y lo que hice fue simular a una persona que entra en esa web, poner los términos de búsqueda y darle al botón de aceptar. El resultado que obtengo es el código HTML que andaba buscando.

La verdad es que está bien, puesto que si el código que se busca no se encuentra debido a que tienes que ejecutar los script de java y demás..esto puede servir.

He hecho un par de pruebas y he seguido unos ejemplos y funciona, si alguien quiere echarle un ojo comparto por aquí el enlace de HTMLUnit por si alguien no lo conoce.

http://htmlunit.sourceforge.net/

Gracias a ambos por sus respuestas.

Saludos.

Etiquetas: html, programa
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 16:52.