FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Tomar valores de una Pagina Web
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM

Tomar valores de una Pagina Web

Posted: 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 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM

Re: Tomar valores de una Pagina Web

Posted: Wed Nov 11, 2009 01: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:

#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
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM

Re: Tomar valores de una Pagina Web

Posted: Wed Nov 11, 2009 01:12 AM

Maestro, es usted muy amable, implementare lo indicado.
Muchas gracias ...

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 1713
Joined: Tue Oct 28, 2008 06:26 PM

Re: Tomar valores de una Pagina Web

Posted: 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 Cuéllar

Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM

Re: Tomar valores de una Pagina Web

Posted: Wed Nov 11, 2009 04: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:

#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
Posts: 94
Joined: Tue Mar 28, 2006 04:09 PM

Re: Tomar valores de una Pagina Web

Posted: Wed Nov 11, 2009 04: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
Posts: 158
Joined: Tue Oct 11, 2005 03:10 PM

Re: Tomar valores de una Pagina Web

Posted: Wed Nov 11, 2009 06:42 PM

Para quien le sirva

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

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

Posts: 1713
Joined: Tue Oct 28, 2008 06:26 PM

Re: Tomar valores de una Pagina Web

Posted: Wed Nov 11, 2009 07:16 PM
Gracias, distinguido Manuel

Con Servidor PROXY explicito no funciona.

La configuració LAN es:


Gracias una vez mas

Saludos

Adhemar

Saludos,



Adhemar Cuéllar

Posts: 94
Joined: Tue Mar 28, 2006 04:09 PM

Re: Tomar valores de una Pagina Web

Posted: Wed Nov 11, 2009 09:52 PM

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

Saludos

Luis Fernando Rubio Rubio
Posts: 782
Joined: Wed Dec 19, 2007 07:50 AM

Re: Tomar valores de una Pagina Web

Posted: 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. :-)

Un abrazo.
manuelmercado at prodigy dot net dot mx
Posts: 1713
Joined: Tue Oct 28, 2008 06:26 PM

Re: Tomar valores de una Pagina Web

Posted: 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 Cuéllar

Posts: 566
Joined: Thu Aug 30, 2007 03:40 PM

Re: Tomar valores de una Pagina Web

Posted: Thu Nov 12, 2009 06: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

Posts: 144
Joined: Sun Dec 18, 2005 03:18 PM

Re: Tomar valores de una Pagina Web

Posted: Mon Sep 27, 2010 05:35 PM

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

 
 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

Gracias de antemano.

Saludos

Salvador

Continue the discussion