Foros del Web » Programando para Internet » ASP Clásico »

tipo de cambio (dolar) a peso mexicano

Estas en el tema de tipo de cambio (dolar) a peso mexicano en el foro de ASP Clásico en Foros del Web. Alguien sabe como obtener el valor del dolar (tipo de cambio) en méxico city. Como podría extraerlo de una página de un banco ? es ...

  #1 (permalink)  
Antiguo 15/02/2005, 12:49
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
tipo de cambio (dolar) a peso mexicano

Alguien sabe como obtener el valor del dolar (tipo de cambio) en méxico city.

Como podría extraerlo de una página de un banco ?

es posible?
  #2 (permalink)  
Antiguo 15/02/2005, 13:42
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 8 meses
Puntos: 16
si es que el banco da el servicio a traves de un xml o un rss seria facil.
pero asi robarla a lo mero macho ...mmm creo podria hacerce con algun robot baje html y luego una expresion regular..o algo asi.
  #3 (permalink)  
Antiguo 15/02/2005, 13:45
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Prueba este WebService: http://www.webservicex.net/CurrencyConvertor.asmx?WSDL
  #4 (permalink)  
Antiguo 15/02/2005, 15:45
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Pero de donde tomara la info este web service? me quede pensando en que si es algo muy preciso a lo mejor no es demasiado confiable, yo se que hay variaciones, pero entre a Bancomer y encontre este tipo de cambio:

DOLAR CPA 11.05
DOLAR VTA 11.30

No se, quizas el mejor metodo seria con un robot como ya lo dijo Muzztein?
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 16/02/2005, 08:57
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Bueno, la verdad es que de donde lo bajé (http://www.webservicex.net/WS/WSDeta...ATID=2&WSID=10) no indican el origen de los datos, pero si este es el caso, un banco de Costa Rica lo ofrece también, pero ahí habría que primero hacer la conversión de pesos a colones y luego a dolares
(http://crux.bccr.fi.cr/tipocambio/Demo.aspx), pero ahí habría más variación creo yo.
Desconozco si algún banco mexicano ofrecel el servicio.
  #6 (permalink)  
Antiguo 16/02/2005, 09:26
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
El mejor sitio para obtener este tipo de info, es el banco central de tu país (en este caso el Banco de México):

http://www.banxico.org.mx/sie/cuadro...ado+de+cambios

O lo que es lo mismo: http://www.banxico.org.mx/sie/cuadros/CF102.asp

¿Cómo sacar esa info para colocarla en tu web?. No tengo ni idea.
  #7 (permalink)  
Antiguo 16/02/2005, 10:53
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
Gracias pors sus respuestas.

Pues con varias horas examinando las páginas web de los bancos, me he dado cuenta que manejan usa seguridad impresionante para poder acceder al código fuente del tipo de cambio.

Entre el más fácil (tarde 15 minutos) para obtener lo sig:

http://finanzasenlinea.terra.com.mx/..._divisausa.asp

Es un cuadro más facil de manipular y sacar el valor del dolar.

el link orifinal es :

http://www.scotiabankinverlat.com/fi...s/mercados.asp

porque me tomo tanto tiempo...

ahora bien, no pude sacr el cuadrito de tipo de cambio desde http://dsrefa01.hsbc.com.mx/

donde dice analisis...tasas,divisas.. se abre un popup.
quise jalar la url de :

<a href="javascript:void window.open('/aptrix/InternetPub.nsf/Content/TasasSplash','nueva','status=no,width=270,height=2 95,screenX=200,screenY=200,toolbar=no,scrollbar=no ,menubar=no,resizable=no');"

por lo que puse:

http://dsrefa01.hsbc.com.mx/aptrix/InternetPub.nsf/Content/TasasSplash'

pero no funciona, bueno pues cono se le hace ????

Mil respetos al que pueda sacar el popup por aparte:
  #8 (permalink)  
Antiguo 16/02/2005, 11:10
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Bueno, solo por comentar, tu único error es el apóstrofe al final, ya que http://dsrefa01.hsbc.com.mx/aptrix/I...nt/TasasSplash abre la tabla en una ventana nueva.
  #9 (permalink)  
Antiguo 16/02/2005, 11:15
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
Mil respetos Myakire

Ahora solo voy a crear un frame y pondre 2 páginas [buscador del dolar] y la otra la página hsbc.

rescataré el valor del dolar.

Bueno trabajeré en eso y despues lo compartiré por si a alguien hermano más se le ofrece.

Nuevamente gracias por la yuada.
  #10 (permalink)  
Antiguo 16/02/2005, 12:40
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Ok, orharo2003, yo se que puedes sacarlo sin problemas. Aca dejo algo para obtener el dolar a la venta y compra con tu idea por si alguien necesita una linea para empezar.

Código:
<%
  Response.Buffer = True
  Dim objXMLHTTP, xml
  Set xml = Server.CreateObject("Microsoft.XMLHTTP")
  xml.Open "GET", "http://dsrefa01.hsbc.com.mx/aptrix/InternetPub.nsf/Content/TasasSplash", False
  xml.Send
	 Cadena = CSTR(xml.responseText)
	 PosIni1 = InStr(Cadena,"DOLAR AMERICANO")
	 PosIni2 = InStr(PosIni1,Cadena,"$")
	 PosFin  = InStr(PosIni2, Cadena,"<")
   DolarCompra = MID(Cadena, PosIni2, PosFin-PosIni2)
	 PosIni1 = PosFin
	 PosIni2 = InStr(PosIni1,Cadena,"$")
	 PosFin  = InStr(PosIni2, Cadena,"<")
   DolarVenta = MID(Cadena, PosIni2, PosFin-PosIni2)
	 Response.Write "Dolar Compra: " & DolarCompra & "<br>"
	 Response.Write "Dolar Venta: " & DolarVenta & "<br>"
       Response.Write Cadena & "<br>"
  Set xml = Nothing
%>
  #11 (permalink)  
Antiguo 16/02/2005, 18:34
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
excelente, oye ahora una ultima molestia, si ya tengo los valores del tipo de cambio con el xml que pusiste como podria hacerle para tomar ese valor en una variable numerica para hacer operaciones?
  #12 (permalink)  
Antiguo 17/02/2005, 09:02
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
¿¿¿¿????
¿Te refieres a CDbl(DolarCompra) y CDbl(DolarVenta)?
  #13 (permalink)  
Antiguo 17/02/2005, 10:25
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
la cosa es que si uso CDbl me marca
No coinciden los tipos: 'cdbl'
__________________
CreandoWebs.com
www.creandowebs.com
PLANTILLAS TEMPLATEMONSTER CON 10% DE DESCUENTO
  #14 (permalink)  
Antiguo 17/02/2005, 11:42
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Aver sjam7, te pongo un ejemplo de como utilizar el valor, y dime por que crees que te marca ese error:
Código:
Session.LCID = 2058
Response.Write "100 pesos son en dolares: " & FormatNumber((100 / CDbl(MID(DolarVenta,InStr(DolarVenta,";")+1,LEN(DolarVenta)))),2) & "<br>"
  #15 (permalink)  
Antiguo 17/02/2005, 11:46
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Yo, yo, yo, yo profe, puedo, puedo, puedo??? salu2 maestrazo
Ya casi es viernes
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #16 (permalink)  
Antiguo 17/02/2005, 11:56
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
jejeje, a ver, niño U_G, ¿por que marcaba error?

Si dice la respuesta correcta le invito unas "guamas" bien frias.

Saludos!!
  #17 (permalink)  
Antiguo 17/02/2005, 12:31
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Supongo que porque estas tratando de realizar una operacion inicial a partir de la operacion de un parseo de cadenas, quizas necesitarias sacar el parseo primero y despues hacer el cast...sera???
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #18 (permalink)  
Antiguo 17/02/2005, 12:34
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 4 meses
Puntos: 16
lo mismo digo (si es que esta bien)...pasa las guamas
  #19 (permalink)  
Antiguo 17/02/2005, 12:52
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
mmmmmmm, pues la verdad es que no te endenti U_G , es que mientras contestabas me tomé las guamas

Pero es fácil, resulta que si observas la salida, ya sea viéndo el código, o desplegándolo con un simple response.write "<xmp>" & xml.responseText & </xmp>", verás que el resultado esta en la forma ...$&nbsp;10.95<..., y originalmente yo busqué el signo "$" para marcar el inicio y el signo "<" para el final, entonces los caracteres no numéricos que provocaban el error son "$&nbsp;" y bastó entonces con eliminarlos (una forma es cortándo apartir del ";"+1).
No se si lo que dijiste U_G era lo mismo, pero congusto les invito esa guama, solo resta que te traslades desde los EU hasta AGS,
  #20 (permalink)  
Antiguo 17/02/2005, 14:58
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 3 meses
Puntos: 98
Si...mas o menos a eso me referia ...
Y bueno, de todas maneras no es viernes, no es permitido

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #21 (permalink)  
Antiguo 18/02/2005, 02:21
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
Sr. Myakire:

Con esta demostración me haz dejado con la boca abierta.

Desconocia esa forma, bueno habia intentado de esta forma:

function bancos()
set bancomer=parent.frames(1).document.body.createText Range() bancomer=bancomer.text


'/* BANCOMER */

ok=false
text=bancomer
x=split(text,chr(13))

for t=0 to ubound(x)
if(x(t)<>"")then if(instr(1,x(t),"dolar",1)<>0)then
ok=true
msgbox "http://www.bancomer.com " & chr(13) &"--------------------------------" & chr(13)& formatcurrency(x(t+9),2) & " a la compra." & chr(13) & formatcurrency(x(t+10),2)& " a la venta." ,vbinformation,"Tipo de cambio" exit for end if end if next if(ok=false)then alert "Imposible conectar con el sitio http://www.bancomer.com.mx" end if

end function
Bueno a grandes rasgos extraigo el valor tambien pero...... hice pruebas localmente y funciona excelente lo malo es de que me ,marca acceso denegado cuando la página está en linea.

Digamos que lo que hice es una forma de extraer el codigo fuente (sin HTML), pero localmente.

La verdad es que te agradezco enormemente y bueno GRACIAS estámos para ayudar.

Saludos.
  #22 (permalink)  
Antiguo 18/02/2005, 03:06
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
bueno investigando más encontré otro componente similar :

http://www.4guysfromrolla.com/webtech/110100-1.shtml

Happy programming ...
  #23 (permalink)  
Antiguo 18/02/2005, 09:00
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Viniendo de tí orharo2003, no puedo más que decir, "¡fui!, prueba superada" .

La verdad es que tu método no lo he utilizado, de hecho no conocía el funcionamiento del "createText", será bueno hacer unos ejercicios para comprenderlo , yo habñia usando antes XMLHTTP para otras cosas (usar los resultados de google, por ejemplo), por lo que supuse que era el método mas fácil para tomer el contenido de una página.

Saludos e igualmente gracias.
  #24 (permalink)  
Antiguo 18/02/2005, 11:21
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
Myakire, molestandote de nuevo.
Bueno, estoy intentando sacar desde bancomer el valor del dolar....
en el de hsbc, era más fácil porque todo esta dentro de una tabla y los valores estan en una fila:

<tr>
<td bgcolor="#ffffff" align="left" valign="top"><font face="Arial" size=1>DOLAR AMERICANO</font></td>
<td bgcolor="#ffffff" align="center" valign="top"><font face="Arial" size=1>$&nbsp;10.92</font></td>
<td bgcolor="#ffffff" align="center" valign="top"><font face="Arial" size=1>$&nbsp;11.17</font></td>

No hay problema hasta ahi, el problema seria en que en la de bancomer estan dos tablas anidadas.

<table border="0" width="72" cellspacing="0" cellpadding="0">
<tr>
<td height="7" class="tx_ind">IPC</td>
</tr>
<tr>
<td height="7" class="tx_ind">DOWJONES</td>
</tr>
<tr>
<td height="7" class="tx_ind">DOLAR CPA</td>
</tr>
<tr>
<td height="7" class="tx_ind">DOLAR VTA</td>
</tr>
<tr>

..... mas valores ....

</table>
</td>
<td align="left" valign="top" width="64" class="tx_gral1" height="67">
<table border="0" width="63" cellspacing="0" cellpadding="0">
<tr>
<td height="7" class="tx_ind">12,113.60</td>
</tr>
<tr>
<td height="7" class="tx_ind">10,494.20</td>
</tr>
<tr>
<td height="7" class="tx_ind">11.17</td>
</tr>
<tr>
<td height="7" class="tx_ind">11.42</td>
</tr>
<tr>
<td height="7" class="tx_ind">1.3338 dls</td>

</table>
</td>
</tr>
<tr align="left" valign="top">

... continua .....

es más dificil. una solución fue :

<body style="visibility:hidden">
<%
Response.Buffer = True
Dim objXMLHTTP, xml
Set xml = Server.CreateObject("Microsoft.XMLHTTP")

xml.Open "POST", "http://www.bancomer.com.mx/ahome/home_index_main.asp", False
xml.Send
cadena = CSTR(xml.responseText)
cadena=replace(cadena,"script","")
cadena=replace(cadena,"SCRIPT","")
%>
<%=cadena%>
Set xml = Nothing
%>

Usando createTextRange() extraigo únicamente el texto sin HTML., despues lo paso a un arreglo y el resultado:


<script language="vbs">

set bancomer=document.body.createTextRange()

bancomer=bancomer.text

text=bancomer

x=split(text,chr(13))

for t=0 to ubound(x)

if(x(t)<>"")then

if(instr(1,x(t),"dolar",1)<>0)then
msgbox formatcurrency(x(t+9),2) & " a la compra." & chr(13) & formatcurrency(x(t+10),2)& " a la venta."

exit for

end if

end if

next

</script>

Pruebalo, si funciona.

Mi pregunta. ... podrías hacerlo más fácil ????
Te lo pregunto porque sé que puedes, bueno en un rato libre si se puede.

Última edición por orharo2003; 18/02/2005 a las 11:25
  #25 (permalink)  
Antiguo 18/02/2005, 11:46
Avatar de yiyocastro  
Fecha de Ingreso: octubre-2004
Ubicación: Maracaibo, Venezuela
Mensajes: 314
Antigüedad: 19 años, 6 meses
Puntos: 0
No Será Mejor Pagarle A Alguien Para Que Lo Actualice?
__________________
Nada es verdad, nada es mentira, todo esta en el cristal con que lo miras. :si:
  #26 (permalink)  
Antiguo 18/02/2005, 11:50
Avatar de yiyocastro  
Fecha de Ingreso: octubre-2004
Ubicación: Maracaibo, Venezuela
Mensajes: 314
Antigüedad: 19 años, 6 meses
Puntos: 0
http://www.programatica.com/monedas/info.html
__________________
Nada es verdad, nada es mentira, todo esta en el cristal con que lo miras. :si:
  #27 (permalink)  
Antiguo 18/02/2005, 11:58
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
mmm... No. la idea es evitar eso !!!!

sistema=automatización. jejeje. ya habia visto esa opción, pero me interesa saber el dolar a la venta y bueno el bancomer es uno de los bancos m´´as usados qui en méxico.

  #28 (permalink)  
Antiguo 18/02/2005, 12:01
Avatar de yiyocastro  
Fecha de Ingreso: octubre-2004
Ubicación: Maracaibo, Venezuela
Mensajes: 314
Antigüedad: 19 años, 6 meses
Puntos: 0
si... pero me explico alli. tu puedes formar un formulario tu mismo con post y automáticmente obtener los datos que necesitas... bueno. yo te digo. ahora no se como se hace.
__________________
Nada es verdad, nada es mentira, todo esta en el cristal con que lo miras. :si:
  #29 (permalink)  
Antiguo 18/02/2005, 12:07
 
Fecha de Ingreso: abril-2004
Ubicación: México D.F.
Mensajes: 1.724
Antigüedad: 20 años
Puntos: 4
lo que pasa es que hay muchos centavos de diferencia a la vta.
x ejemplo con la página que me dijiste :

11.06 a --> 11.22. (bancomer)
  #30 (permalink)  
Antiguo 18/02/2005, 14:35
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Pues onharo, lo único que se me ocurre, es seguir la misma idea del ejemplo anterior, la de buscar un patrón único que ayude a localizar en este caso a los valores deseados. Elegí las definiciones de las tablas, quedó así:
Código:
<%
  Response.Buffer = True
  Dim objXMLHTTP, xml
  Set xml = Server.CreateObject("Microsoft.XMLHTTP")
  xml.Open "POST", "http://www.bancomer.com.mx/ahome/home_index_main.asp", False
  xml.Send

  Cadena = xml.responseText
  CadenaInicial = "<td align=""left"" valign=""top"" width=""64"" class=""tx_gral1"" height=""67"">"
 CadenaFinal   = "</table>"	 
 PosIni = InStr(Cadena,CadenaInicial)
 PosFin = InStr(PosIni, Cadena,CadenaFinal)
 Cadena = MID(Cadena, PosIni, PosFin-PosIni)
 Vec = SPLIT(Cadena,"<td height=""7"" class=""tx_ind"">")
 Response.Write "Dolar Compra: " & Vec(3) & "<br>"
 Response.Write "Dolar Venta: " & Vec(4) & "<br>"

'  Response.Write Cadena & "<br>"

  Set xml = Nothing
%>
Nota que primero extraigo solo la tabla que contiene los valores para que el SPLIT no se tarde tanto.

Saludos
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

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:06.