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

lector de codigo html

Estas en el tema de lector de codigo html en el foro de Java en Foros del Web. Hola, estoy planeando construir un lector de código HTML, no necesito construir una página web ni mostrarla, solo necesito poder leer código HTML de páginas ...
  #1 (permalink)  
Antiguo 07/12/2014, 04:13
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
lector de codigo html

Hola, estoy planeando construir un lector de código HTML, no necesito construir una página web ni mostrarla, solo necesito poder leer código HTML de páginas de internet.

Alguien me da alguna idea? Hay algo así ya hecho con código abierto?

Es decir, si yo a mi lector HTML le indico la página http://www.forosdelweb.com/index.html lo que quiero es tener el código HTML del archivo index.html, no necesito mostrarlo, solo tener como texto plano el código de dicha página para luego poder trabajar con dicho códgo.
  #2 (permalink)  
Antiguo 07/12/2014, 04:29
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: lector de codigo html

Buenas,

Tan sencillo como abrir un socket cliente al puerto 80 a forosdelweb.com y enviarle la cadena "GET /index.html HTTP/1.1". El servidor te devolverá el código HTML.

Si no quieres hacerlo a bajo nivel con sockets, te basta con utilizar la clase URL. Son 4 lineas de código:

Código Java:
Ver original
  1. public static void main(String[] args) throws Exception {
  2.         URL url = new URL("http://www.forosdelweb.com/");
  3.         InputStream is = url.openStream();
  4.         BufferedReader br = new BufferedReader(new InputStreamReader(is));
  5.         String line;
  6.  
  7.         while ((line = br.readLine()) != null) {
  8.             System.out.println(line);
  9.         }
  10.     }


Si, como supongo, lo que en realidad quieres es hacer algo más complejo que comporte técnicas de webscraping, te recomiento la librería JSoup. http://jsoup.org/.

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 08/12/2014, 05:40
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: lector de codigo html

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

Si, como supongo, lo que en realidad quieres es hacer algo más complejo que comporte técnicas de webscraping, te recomiento la librería JSoup. http://jsoup.org/.

Un saludo
No tenía ni idea de lo que era el webscraping, pero solo con ver la definición de Wikipedia tengo que decir que si, ese es el plan.

Sin embargo mi programa accederá en busca de esa información a una base de datos local, y cuando no la encuentre lo que hará será acceder a una única web muy sencilla que me dará la distinta información siempre con una misma estructura HTML y la copiará en dicha base de datos para futuras consultas. Por eso cada vez será menos frecuente la búsqueda en la web, y al final implementar la librería jsoup sería inútil, pues cuando ya tenga una base de datos extensa la grandísima mayoría de búsquedas serán en la propia base de datos, y solo esporádicamente necesitaré acceder a la web. Por eso creo que es mejor no implementar librerías a un programa que cuanto más tiempo en funcionamiento tenga menos necesitará de la web.

Por todo ello creo que la clase URL me viene super genial, ya que es super-sencilla de utilizar y no me incrementará tanto como una librería entera la memoria utilizada (y por supuesto... también valoro el tiempo de aprender el funcionamiento de la librería jsoup)

Sin embargo me he dado una vuelta por la web de jsoup, y oye... aunque para este proyecto no lo vaya a necesitar... veo este tema también muy interesante. Y es bueno saber que en este tema ya hay librerías tan avanzadas como parece que lo está esta.

Última edición por Kritik; 08/12/2014 a las 05:45
  #4 (permalink)  
Antiguo 08/12/2014, 06:15
(Desactivado)
 
Fecha de Ingreso: marzo-2012
Mensajes: 366
Antigüedad: 12 años
Puntos: 31
Respuesta: lector de codigo html

Acabo de probar este código con mi web de destino en la que voy a hacer todas las búsquedas, y lo que me dice es:

"Please enable JavaScript to view the page content".

Al final voy a necesitar un navegador? Según he leído en Wikipedia, el webscraping utilizan programas que embebean un navegador dentro de ellos.

La clase URL es capaz de hacer esto, o ya por narices tengo que utilizar jsoup? (Jsoup permite ejecutar JavaScript?)

Nota: La página web de la que quiero sacar la información tiene un campo de texto de búsqueda, y al meter el objeto a buscar me ofrece el resultado buscado dentro de un marco.

Al acceder al código de dicho marco veo que este empieza por:

Código:
<a href="search?id=Pjoo6NwmYVcRj87BtECM" target="_self">
Y después ya viene la información que busco.

Esto tiene pinta de ser el resultado de una búsqueda php o asp.

Última edición por Kritik; 08/12/2014 a las 06:37
  #5 (permalink)  
Antiguo 09/12/2014, 13:11
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: lector de codigo html

Hola:

HTMLUnit te permite cargar la página web y ejecuta el javascript que haya en ella, por lo que podrías ver el contenido generado por javascript. También viene con ciertas facilidades para buscar luego dentro del HTML generado.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: html, lector
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 12:47.