Tomar valores de una Pagina Web

Tomar valores de una Pagina Web

Postby Enrrique Vertiz » Tue Nov 10, 2009 10:02 pm

Saludos
He estado revisando en el foro y no he podido encontrar algo que me ayude con lo siguiente, necesito tomar valores de una pagina web, por ejemplo :
http://www.elperuano.com.pe
En esa pagina aparecen en la cabezera los tipos de cambio compra y venta del dia (soles por US dolar), existe alguna forma de que pueda capturar esos valores y bajarlos a alguna variable ??
Gracias por su atencion
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: Tomar valores de una Pagina Web

Postby mmercado » Wed Nov 11, 2009 1:08 am

Hola Enrique:
Enrrique Vertiz wrote:Saludos
He estado revisando en el foro y no he podido encontrar algo que me ayude con lo siguiente, necesito tomar valores de una pagina web, por ejemplo :
http://www.elperuano.com.pe
En esa pagina aparecen en la cabezera los tipos de cambio compra y venta del dia (soles por US dolar), existe alguna forma de que pueda capturar esos valores y bajarlos a alguna variable ??
Gracias por su atencion

La página que mencionas no devuelve la información que necesitas, probé con "http://www.peru.gob.pe/" y al parecer aquí puedes obtener dicha información.

Te muestro la forma de hacerlo:
Code: Select all  Expand view  RUN
#include "FiveWin.ch"

Function Main()
   MsgInfo( Tipo_de_cambio(), "US Dollar" )
Return Nil

Function Tipo_de_cambio()

   Local oHttp, ;
         cResp := ""

   Try
      oHttp := CreateObject("winhttp.winhttprequest.5.1")
      oHttp:Open("GET","http://www.peru.gob.pe/",.f.)
      oHttp:Send()
      cResp := oHttp:ResponseText()
   Catch
      MsgStop( "Error" )
      Return cResp
   End Try

   cResp := SubStr( cResp, At( "Tipo de cambio C: S/. ", cResp ) )
   cResp := StrTran( StrTran( Substr( cResp, 1, At( "</b>", cResp ) - 1 ), "C: S/.", "Compra: S/." ), "V: S/.", ;
                     "Venta: S/." )
Return cResp
 


Un abrazo.
manuelmercado at prodigy dot net dot mx
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Tomar valores de una Pagina Web

Postby Enrrique Vertiz » Wed Nov 11, 2009 1:12 am

Maestro, es usted muy amable, implementare lo indicado.
Muchas gracias ...
Enrrique Vertiz Pitta
Lima-Peru
xHb 1.23.1026X, Fwh 24.09, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Enrrique Vertiz
 
Posts: 541
Joined: Fri Oct 07, 2005 2:17 pm
Location: Lima - Peru

Re: Tomar valores de una Pagina Web

Postby acuellar » Wed Nov 11, 2009 12:52 pm

Distinguido Manuel

Con ADSL abierto funciona perfecto, como se hace con un servidor proxy con la siguiente puerta 192.10.1.7 puerto 8080

Gracias

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1644
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Tomar valores de una Pagina Web

Postby mmercado » Wed Nov 11, 2009 4:36 pm

Hola Adhemar:
acuellar wrote:Con ADSL abierto funciona perfecto, como se hace con un servidor proxy con la siguiente puerta 192.10.1.7 puerto 8080

Aunque no he probado con proxy explícito, podría ser algo como ésto:
Code: Select all  Expand view  RUN
#include "FiveWin.ch"

#define HTTPREQUEST_PROXYSETTING_DEFAULT   0
#define HTTPREQUEST_PROXYSETTING_PRECONFIG 0
#define HTTPREQUEST_PROXYSETTING_DIRECT    1
#define HTTPREQUEST_PROXYSETTING_PROXY     2

Function Main()
   MsgInfo( Tipo_de_cambio(), "US Dollar" )
Return Nil

Function Tipo_de_cambio()

   Local oHttp, ;
         cResp := ""

   Try
      oHttp := CreateObject("winhttp.winhttprequest.5.1")
      oHttp:Open("GET","http://www.peru.gob.pe/",.f.)
      oHttp:SetProxy( HTTPREQUEST_PROXYSETTING_DEFAULT ) // toma valores del registro
//    oHttp:SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, "proxy_server:80", "192.10.1.7" ) // explícito
      oHttp:Send()
      cResp := oHttp:ResponseText()
   Catch
      MsgStop( "Error" )
      Return cResp
   End Try

   cResp := SubStr( cResp, At( "Tipo de cambio C: S/. ", cResp ) )
   cResp := StrTran( StrTran( Substr( cResp, 1, At( "</b>", cResp ) - 1 ), "C: S/.", "Compra: S/." ), "V: S/.", ;
                     "Venta: S/." )
Return cResp
 

Un abrazo.
manuelmercado at prodigy dot net dot mx
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Tomar valores de una Pagina Web

Postby derpipu » Wed Nov 11, 2009 4:44 pm

Master Mercado, sabra la forma de sacar la misma informacion de los bancos Mexicanos, estuve viendo algunas paginas y no encontre como, si puediera usted darme un norte...

Saludos de un servidor desde Tequila, Jalisco

Luis Fernando Rubio Rubio
Luis Fernando Rubio Rubio
derpipu
 
Posts: 94
Joined: Tue Mar 28, 2006 4:09 pm
Location: Tequila, Jalisco Mexico

Re: Tomar valores de una Pagina Web

Postby ricardog » Wed Nov 11, 2009 6:42 pm

Para quien le sirva

Tomando el ejemplo del Maestro Mercado, y con la página de Banamex.com

Code: Select all  Expand view  RUN
Function Tipo_de_cambio()

   Local oHttp, ;
         cResp := "", ;
         cCompra:= "",;
         cVenta:=""

   Try
      oHttp := CreateObject("winhttp.winhttprequest.5.1")
      oHttp:Open("GET","http://www.banamex.com.mx/esp/finanzas/divisas/divisas.html",.f.)
      oHttp:Send()
      cResp := oHttp:ResponseText()
   Catch
      MsgStop( "Error" )
      Return cResp
   End Try

    //Saca a l Compra
   cResp := SubStr( cResp, At( 'Ventanilla', cResp ) )
   cResp := Substr( cResp, At( '4">', cResp )+3 )
   cCompra:= Substr( cResp, 1,At( '</', cResp )-2 )
   //Saca a la Venta
   cResp := Substr( cResp, At( '4">', cResp )+3 )
   cVenta:= Substr( cResp, 1,At( '</', cResp )-2 )
   cResp:="Dollar Americano"+CRLF+"Compra"+CRLF+;
   Tran(Val(cCompra),"999,999.9999")+CRLF+;
   "Venta"+CRLF+;
   Tran(Val(cVenta),"999,999.9999")
Return cResp


Saludos
ricardog
 
Posts: 158
Joined: Tue Oct 11, 2005 3:10 pm

Re: Tomar valores de una Pagina Web

Postby acuellar » Wed Nov 11, 2009 7:16 pm

Gracias, distinguido Manuel

Con Servidor PROXY explicito no funciona.

La configuració LAN es:
Image

Gracias una vez mas

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1644
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Tomar valores de una Pagina Web

Postby derpipu » Wed Nov 11, 2009 9:52 pm

muchas gracias Ricardo y Master Manuel Mercado por el ejemplo...

Saludos
Luis Fernando Rubio Rubio
derpipu
 
Posts: 94
Joined: Tue Mar 28, 2006 4:09 pm
Location: Tequila, Jalisco Mexico

Re: Tomar valores de una Pagina Web

Postby mmercado » Thu Nov 12, 2009 12:27 am

Hola Adhemar:
acuellar wrote:Con Servidor PROXY explicito no funciona.

Lo que pasa es que yo nunca he usado el proxy.

Trata de cambiar los parámetros de :SetProxy por ejemplo:
oHttp:SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, "192.10.1.7:80" )
ó bien:
oHttp:SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, "192.10.1.7:8080" )

Con la opción predefinida no te funciona?
oHttp:SetProxy( HTTPREQUEST_PROXYSETTING_DEFAULT )

Nos cuentas como lo resolviste. :D

Un abrazo.
manuelmercado at prodigy dot net dot mx
User avatar
mmercado
 
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Tomar valores de una Pagina Web

Postby acuellar » Thu Nov 12, 2009 12:39 pm

Gracias Distinguido Manuel

Con
oHttp:SetProxy( HTTPREQUEST_PROXYSETTING_PROXY, "192.10.1.7:8080" )

Funcionó Perfecto

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1644
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Tomar valores de una Pagina Web

Postby norberto » Thu Nov 12, 2009 6:02 pm

ola, desculpe pelo portugues.... alguem sabe como fazer o contrario, ou seja, colocar um valor em uma pagina http? tipo preecher automaticamente um campo em uma pagina com valores de uma variavel. obrigado
norberto
 
Posts: 566
Joined: Thu Aug 30, 2007 3:40 pm
Location: BR

Re: Tomar valores de una Pagina Web

Postby Salvador » Mon Sep 27, 2010 5:35 pm

Sabe ustedes como capturar los errores especificos del objeto "winhttp.winhttprequest.5.1"

Code: Select all  Expand view  RUN
Try
      oHttp := CreateObject("winhttp.winhttprequest.5.1")
      oHttp:Open("GET","http://www.banamex.com.mx/esp/finanzas/divisas/divisas.html",.f.)
      oHttp:Send()
      cResp := oHttp:ResponseText()
   Catch
      "¿Que provoco el error?"
     End Try


Gracis de antemano.
Saludos
Salvador
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 49 guests