Comunidad de diseño web y desarrollo en internet online

Parsear una página con javascript

Citar            
MensajeEscrito el 06 Mar 2012 08:55 am
Hola a todos,

tengo que parsear la siguiente página con datos de calidad del aire: http://www.cma.gva.es/cidam/emedio/atmosfera/jsp/pde.jsp?PDE.CONT=912&estacion=499&titulo=46250050-Val%E8ncia%20-%20Bulevard%20Sud&provincia=46&municipio=250&red=0&PDE.SOLAPAS.Mostrar=1111

No tengo mucha idea de como abordar el problema y me gustaría que me ayudarais a obtener dicha información desde un programa en Java.

Saludos y gracias.

Por vilafames

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Mar 2012 09:37 am
java != javascript

tu primer problema está en que usa frames.

así que en realidad tienes que hacer un parse de:

http://www.cma.gva.es/cidam/emedio/atmosfera/jsp/datos_on_line.jsp

Si tienes la posibilidad... python quizá sea mejor lenguaje para hacer parses..
al fin y al cabo google lo usa para eso no?

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

chrome
Citar            
MensajeEscrito el 06 Mar 2012 09:46 am
Gracias,

ya se que java != javascript, me refería un parser hecho desde java. Estoy un poco verde en estos temas. No me importa usar python, pero ¿como puedo obtener la información que quiero mediante la url que me has indicado?, ¿que librerías puedo utilizar para ejecutar el jsp?

Saludos

Por vilafames

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Mar 2012 01:11 pm
Ok ok! es como estas en el foro javscript y lo pedias en java.. ps..

en java no puedo ayudarte para nada :\ se muy poco de java y no me he metido demasiado.

en python..
esto creo que puede ayudarte http://www.boddie.org.uk/python/HTML.html

luego utilizas s.find() para trabajar con ello.

Hay un curso gratutio que te enseña ha trabajar con python analizando páginas web (al estilo google)
http://www.udacity.com/overview/Course/cs101

Son de udacity y el curso es bastante bueno, algo redundante la primera unidad (si ya sabes python) y, sinceramente, aún no he tenido tiempo de hacer la 2nda unidad XD

así que bueno. con eso tienes para un rato..

si aún así lo harás en java no puedo darte ayuda :\

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

chrome
Citar            
MensajeEscrito el 06 Mar 2012 02:09 pm
Estoy probando la librería urllib y al igual que con Java, me devuelve el html sin ejecutar el javascript para generar las tablas. Mi problema es principalmente ese, como obtener la respuesta del jsp sin ejecutarlo desde un navegador.

Saludos y gracias.

Por vilafames

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Mar 2012 10:29 am
hmm ya entendí donde está tu problema verdadero...

google le tomó un tiempo lidiar con ello.... si encuentro que metodología utilizaron te comento :\

PD: no hay forma de que hagas un dump a su js. y si llaman a un archivo para obtener los datos tu hagas la misma llamada y parsees esos datos?

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

chrome
Citar            
MensajeEscrito el 07 Mar 2012 10:39 am
Eso es mi problema no se como llamar al jsp. Nunca me he metido con estas cosas y estoy un poco verde de como empezar.

Gracias por ayudarme.

Por vilafames

11 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Mar 2012 07:54 pm
Un JSP es un archivo que trabaja del lado del servidor, como PHP o ASP. Al llamar la url debería devolverte HTML con la información procesada. Mira el código fuente de ese HTML para tener una idea de cuál es la estructura. Por ejemplo, puede usar AJAX para recibir la data y luego manipularla con javascript de acuerdo a lo que necesitas.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 07 Mar 2012 08:28 pm
Es como dice The fricky!

Si miras un poco el code verás algo así:

Código HTML :

<frameset cols="6,*,6" frameborder=no border=0 framespacing=0>
<frame src="javascript:top.blankframe()" name="border1" marginwidth=0 marginheight=0 scrolling=no>
<frameset rows="0,30,*,0">
<frame src="/webapp/jsp/container_top.jsp?tc=tbc" name="_header" marginwidth=0 marginheight=2 scrolling=no>
<frame src="/webapp/jsp/container_tabs.jsp?tc=tbc" name="_tabs" marginwidth=0 scrolling=no>
<frame src="datos_on_line.jsp" name="_cnt" marginwidth=3 scrolling=auto>
<frame src="/webapp/jsp/container_bottom.jsp?tc=tbc" name="_bottom" marginwidth=0 scrolling=no>
</frameset>
<frame src="javascript:top.blankframe()" name="border2" marginwidth=0 scrolling=no>
</frameset>


de todos esos frames, el que te da los datos es este:


Código HTML :

<frame src="datos_on_line.jsp" name="_cnt" marginwidth=3 scrolling=auto>


como lo puedes saber? facil, entras 1 por 1 y ves que ese te da la tabla.

así que la url a la que tienes que llamar es esta:

http://www.cma.gva.es/cidam/emedio/atmosfera/jsp/datos_on_line.jsp

ahí tienes todos los datos que necesitas en html.
Ahora es cuestión de hacer un parser de eso mismo.

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

chrome
Citar            
MensajeEscrito el 08 Mar 2012 03:22 pm
Solucionado!

Gracias a todos.

Por vilafames

11 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.