Como obtener KEY automaticamente OBTENER VALORES DE BOLSA

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
ruben
Mensajes: 2
Registrado: 27 Mar 2012, 17:57

Como obtener KEY automaticamente OBTENER VALORES DE BOLSA

Mensaje por ruben »

Hola a todos,

Me hace falta obtener los valores del IBEX35 de la bolsa, existen varias web que los muestran pero ninguna, (hasta ahora no la he encontrado) a la que pueda conectarme como un servicio y me de automaticamente los valores que necesito.

Estas paginas web que muestran graficos Online de la bolsa (como el IBX35), casi siempre hacen peticiones a un server que le envia un archivo con valores que ellos grafican. Simplemente con la consola de FireFox, se pueden ver esas peticiones e incluso copiarlas y obtener los datos al instante:
Ej.
http://www.eleconomista.es preguntando por el IBX35

hace esta peticion


GET : http://flashchart.webfg.com/router.php? ... 2+20120322

donde facilmente se puede ver que:

DAILY (frecuencia de los datos, en este caso diaria)
1828 (cantidad de dias ocurridos entre el periodo de fechas que se esta pidiendo)
20070322+20120322 (período de datos)
ES0SI0000005_indices_55_df_ (tipo de producto que se esta pidiendo, para este caso IBX35)
eleconomista (nombre de la pag que lo esta pidiendo )
2c1046492a2c906bc5f7b898c5a48abe (KEY , esto cambia cada dia, sino no hubiera problemas para obtener los datos con esta misma llamada)


Otro ejemplo desde otra pagina (expansion.com)
GET : http://flashchart.webfg.com/router.php? ... 3+20120323

en este caso es cada 1 min y te da la cantidad de minutes entre el periodo de tiempo que selecciones,

En fin, mi duda es, como puedo desde una pagina web capturar estas llamadas de cualquiera de estas paginas para poder hacerla yo despues, y actualizar mi llamada todos los dias, actualizando con el KEY de cualquier de estos sitios... ???
No se si me hago entender.. .
espero cualquier ayuda o sugerencia ....

rub
Avatar de Usuario
arkcrew
Profesional del Autoit
Mensajes: 506
Registrado: 28 Sep 2009, 19:17
Ubicación: Granada, España
Contactar:

Re: Como obtener KEY automaticamente OBTENER VALORES DE BOLS

Mensaje por arkcrew »

Hola,

Creo, he dicho creo, que te he entendido.

Creo que lo que quieres es conseguir esos datos que hablas acerca de los valores del IBEX35, esos datos se muestran en paginas como http://www.eleconomista.es/ esa, pero la petición que hacen al servidor para obtener la información necesita una key que se actualiza cada día no es así?

Quizás, no sea lo mejor intentar descifrar esa key que quizás sea complicado, las dos cosas que se me ocurren son:

1. Que intentes buscar cada día que key utiliza, supongo que lo más probable es que vaya codificada en el link que envía la petición al servidor así que lo más lógico sería analizar la página para ver en qué lugar está esa key y sacarla de ahí para usarla tu.

2. Que directamente obtengas los valores desde la página del economista que nos publicas, con expresiones regulares puedes obtener la sección de la página que te interesa, sacas el código fuente y lo analizas para sacar los valores que quieras.

Quizás sea un poco tedioso lo que te explico, ya te digo, apenas se demasiado sobre como va esto, quizás puedas contactar con los de la página para que te expliquen algo de como funciona lo de la key o algo así, sino esa es mi idea, quizás no te sirva o quizás te de alguna idea, igualmente, ahí queda eso.

Espero que te sirva de algo.

Saludos!
Jonny
Profesional del Autoit
Mensajes: 1042
Registrado: 30 Jun 2008, 20:08

Re: Como obtener KEY automaticamente OBTENER VALORES DE BOLS

Mensaje por Jonny »

No es que sea difícil lo que quieres, yo diría, que más bien, es entretenido.

Así un poco por encima, la idea principal, sería:

- Analizar la página www.eleconomista.es:
(ver que links, botones, etc hay que pulsar para llegar a la info que quieres).
- analizar el código de la web, en especial el de los links o botones que se hayan de pulsar para llegar a la información deseada.
- Una vez analizada la web, desde el punto de vista de usuario y técnico (programación) la idea es hacer la consulta haciéndose pasar por un navegador web, para que todo funcione, ya que la web la hemos analizado en un navegador...

Dices que esa página, hace una consulta a otra página. Así, pues, habrá que simular la llamada directamente a ese servidor original que contiene la información del IBEX35.
En principio, el servidor www.eleconomista.es no haría falta usarlo, pero como parece que hay que pasar al servidor original una clave variable... (que habría que ver de dónde saca la web de www.eleconomista.es) pues habría que hacer dos peticiones:
- Una a www.eleconomista.es, para obtener la llamada al servidor que contiene la información.
- y otra al servidor que contiene la información del IBEX35, haciendo la llamada correctamente para que este nos devuelva dicha información. Para ello, antes de la segunda llamada, habrá que procesar los parámetros a pasarle al servidor, que obtendremos en la llamada a www.eleconomista.es.
Con todo esto, obtendremos lo mismo que obtiene el servidor www.eleconomista.es, cuando lo invocamos nosotros desde nuestro navegador. A partir de aquí, sólo es cuestión de procesar lo que devuelve el servidor que contiene la información del IBEX35 que consulta www.eleconomista.es, y hacer con esa información lo que queramos.

Esa es la teoría. Pero, ahora falta la práctica...

¿Cómo hacer todo esto?.

No es tan difícil como puede parecer a simple vista. Como dije, sólo es entretenido.

Puede hacerse de muchas formas. A mi, la que más me gusta, es, como dije, haciendo peticiones, exactamente, emulando al navegador.
Para ello, hemos de tirar de las funciones TCP. En este caso, veo que la llamada es GET, por lo que es más sencilla de hacer. De hecho, podría hacerse con _InetGetSource() pero con las funciones TCP(), la ventaja es, que si fuera una llamada POST, podría también hacerse la petición a cualquier servidor y sería exactamente igual de difícil, que una petición GET.

Hacer todo esto con las funciones TCP, puede ser laborioso, y requerir bastante código, si queremos hacer control de errores, etc. Por suerte, puedes usar una UDF que hice hace unos meses y que tienes aquí:

http://www.emesn.com/autoitforum/viewto ... au3#p12191

En ella, hay un montón de funciones, pero entre ellas tienes dos, que te serán de mucha utilidad, y te ahorrarán muchísimo trabajo y código. Una de ellas, te hace todo el trabajo de hacer la petición al servidor y devolverte el resultado de este (sólo has de encargarte de la parte práctica que explicaba al principio, analizar la web de www.eleconomista.es y hacer la llamada a la función, con los parámetros bien configurados).
La otra, te permite limpiar el resultado que obtengas del servidor, dejando sólo el texto de esta, eliminando todo el código HTML o JAVASCRIPT. En realidad, puedes elegir qué eliminar: HTML, JAVASCRIPT, CSS...

Con estas dos funciones y analizando un poco internamente la web de www.eleconomista.es, podrás obtener fácilmente la información que quieres.

Espero que te sirva la explicación.

Salu2!
ruben
Mensajes: 2
Registrado: 27 Mar 2012, 17:57

Re: Como obtener KEY automaticamente OBTENER VALORES DE BOLS

Mensaje por ruben »

Gracias a todos por sus respuestas , al final la cosa fue mas facil de lo esperado.
Analizando el Source Code de la pagina tienen un div oculto con la Key que deben generar mediante php pero les hace falta tenerlo el cuerpo para poder hacer las llamadas por ajax mediante Jquery. Asi que la solucion final, cuando se me caduca la llave, pues, hago un file_get_contents() y saco la key de ahi y continuo haciendo mis propios llamados ..
tema resuelto .. :)
saludos a todos

ruben
Responder