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: 1710
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 C.
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: 1710
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 C.
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: 1710
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 C.
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