Autor Tema: Tipo de Cambio desde web  (Leído 13538 veces)

0 Usuarios y 1 Visitante están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Tipo de Cambio desde web
« en: Junio 14, 2011, 03:18:54 am »
No tengo idea de como empezar esto. Me he instalado un soft administrativo (siempre estudiando a la competencia) y he visto que tiene un formulario de Cambio de Divisas, donde escoge su moneda local (por ejemplo Peso Argentino) y otra moneda (Dolar Americano) que cuando le da a Actualizar trae la conversión respectiva.
A mi me basta con que en un label se pinta el valor del dolar americano en mi pais. ¿Como podria hacer eso?

Imagino que debo buscar alguna web que me de ese servicio?, por ejemplo, con S/.2.80 compro $1.00, osea mi tipo de cambio es 2.80, eso quiero traerme de alguna web.

Gracias.

Me encuentras en YAcosta.com

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #1 en: Junio 14, 2011, 03:44:05 am »
Hola Yvan lo que podes hacer es conseguirte un sniffer para ver cual es la web que consulta dicho soft, y luego reproducir la sequencia.

Saludos.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Tipo de Cambio desde web
« Respuesta #2 en: Junio 14, 2011, 05:55:45 am »
aja, ya voy a buscar, por si acaso, el programa en cuestión es el AceMoney Lite.
http://www.mechcad.net/downloads/AceMoneyLiteSetup.exe
Me encuentras en YAcosta.com

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #3 en: Junio 14, 2011, 04:04:46 pm »
Hola por lo que pude ver utiliza el servicio de finance.yahoo.com pero bueno parece que no esta tan facil rastrear la peticion, por lo que vi hace un GET de mcsl2.finance.vip.ac4.yahoo.net/q?s=USDARS=X pero el link parece roto.




coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #4 en: Junio 14, 2011, 04:26:48 pm »
@Leandro: che postea el header completo, lo mas probable es que agregue algun "User-Agent: AceMoney" o algo asi, que si no lo envias, no te da data..
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #5 en: Junio 14, 2011, 04:39:27 pm »
Hola coco, si y depaso aclaro que me equivoque con el host del link seria finance.yahoo.com/q?s=USDARS=X

Código: [Seleccionar]
IP
Version:4
Header len.:20
Total len.:208
ID:$4B6F
fragmentation
DF=0
MF=0
TTL:128
Protocol:$06 (TCP)
Checksum:$8CC8
Source IP:10.0.0.3
Dest. IP:209.191.70.46
TCP
src_port:51866
dest_port:80
seq_number:4075987873
ack_number:445758798
data_offset:5
flags (PUSH)
urgent :0
ack :1
push :1
reset :0
syn :0
fin :0
window:16425
checksum:$91F1
urgent_pointer:$00
HTTP
GET /q?s=USDARS=X HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Accept: */*
Referrer: http://finance.yahoo.com
Host: finance.yahoo.com
si lo pasas asi nomas en el navegador te da como respuesta un html comun quizas pasando el referrer de http://finance.yahoo.com te da un xml o algo por el estilo, lo que si en el sniffer no vi ninguna respuesta de entra son solo peticiones

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Tipo de Cambio desde web
« Respuesta #6 en: Junio 14, 2011, 05:04:18 pm »
guauu que paja, no sabia que se podía hacer eso. El sniffer es el Ip Tools? voy a buscarlo y aprender a ver como se usa.
Me encuentras en YAcosta.com

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #7 en: Junio 14, 2011, 05:15:59 pm »
@Leandro, pasale el referrer http://finance.yahoo.com y listo. eso si, te devuelve un html, y no un xml.
el header completo (que envia el soft) es este:
Citar
GET /q?s=USDARS=X HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Accept: */*
Referrer: http://finance.yahoo.com
Host: finance.yahoo.com

y el que nosotros deberiamos enviar (para ahorrarnos el timeout y ciertas boludeces del socket:
Citar
GET /q?s=USDARS=X HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Accept: */*
Connection: close
Referrer: http://finance.yahoo.com
Host: finance.yahoo.com

para parsear:
1º busca el texto que empieza en Last Trade: hasta </b>
2º sacar la data, que esta entre: =x"> y </span

saludos
« última modificación: Junio 14, 2011, 05:20:52 pm por coco »
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #8 en: Junio 14, 2011, 08:08:00 pm »
jaja mira como hakckean los muchachos, por si no saben yahoo finance tiene una api, y en 2 patadas hacen eso  :P

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Tipo de Cambio desde web
« Respuesta #9 en: Junio 14, 2011, 08:20:02 pm »
jaja mira como hakckean los muchachos, por si no saben yahoo finance tiene una api, y en 2 patadas hacen eso  :P

porfa... date el gusto, dame las dos patadas jeje ;) ¿Como se hace?


Saludos
Me encuentras en YAcosta.com

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #10 en: Junio 14, 2011, 08:39:12 pm »
ok, ahi van las patadas  :)

primero un script de php de una web, ahi tenes todos los ID de las monedas en un array, despues la consulta a la web creo que se entiende.

CodeIgniter using yahoo finance : A CodeIgniter Payment Library

y segundo algo mas entendible usando lo mismo, ahi ya tenes la URL para hacer la consulta, solo pasarle los parametros...}

Basic Java Currency converter using Yahoo Finance API

aca un ejemplo de pasar dolares a los Shekels isaraelies

te devuelve un archivo plano que no habria problemas para leerlo.

http://download.finance.yahoo.com/d/quotes.csv?s=USDILS=X&f=l1&e=.cs

pero si buscas encontras miles de ejemplos de uso de esta api...ya que un monton de webs la usan.

saludos.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Tipo de Cambio desde web
« Respuesta #11 en: Junio 14, 2011, 08:41:12 pm »
Excelente Sebas. Muchas gracias. Esas patadas siempre serán bien recibidas.

Saludos
Me encuentras en YAcosta.com

yalosabes

  • Bytes
  • *
  • Mensajes: 16
  • Reputación: +0/-2
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #12 en: Junio 14, 2011, 10:27:03 pm »
Bueno yo hago consultas de una web de esta forma , me sirve pa excel (macros) y Vb 6.0 :

En este caso es para consultar la razon  social (nombre y apellido) a partir del RUC (que es un codigo que tiene cada persona con negocio)



Public Function razonsocial(rucc As String) As String
Dim celda
On Error Resume Next
web = "pagina web de sunat peru" & rucc
principio = rucc
final = " <br/></small>"
Set xml = CreateObject("Microsoft.XMLHTTP")
xml.Open "POST", web, False
xml.Send
texto = xml.responseText
posicion1 = InStr(xml.responseText, principio)
posicion2 = InStr(xml.responseText, final)
dato = Mid(xml.responseText, posicion1 + 14, (posicion2 - posicion1) - 14)

If Err = 0 Then
   razonsocial = dato

Else
     razonsocial = "Imposible Obtener Resultados"
End If

Set xml = Nothing
End Function

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Tipo de Cambio desde web
« Respuesta #13 en: Junio 15, 2011, 07:47:28 am »
Muy bueno Seba desconocia esa API de yahoo no lei mucho pero seguramente tiene para varias cosas mas.
aca dejo un ejemplito
https://rapidshare.com/files/3063222167/YahooFinance.zip

Saludos

[OFF TOPIC]  veo que hay mucha actividad en el foro, lo cual me alegra mucho, lastima este horario choto de trabajo que tengo no me da tiempo en nada, esta semana voy a hacer algun aporte.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Tipo de Cambio desde web
« Respuesta #14 en: Junio 15, 2011, 09:04:17 pm »
El gadget!!! el gadget!!! jejeje

Leandro, el código funciona perfecto, gracias...
« última modificación: Junio 15, 2011, 09:17:47 pm por YvanB »
Me encuentras en YAcosta.com