• Jueves 28 de Marzo de 2024, 23:35

Autor Tema:  obtener dato de una web  (Leído 7513 veces)

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
obtener dato de una web
« en: Sábado 24 de Octubre de 2009, 16:25 »
0
hola , amigos de solocodigo se me presento una curiosidad , a decir verdad nunca e intentado hacer algo como esto pero se me vino a la mente hacer que powerbuilder pueda obetener un dato especifico de una pagina web Extamente de esta : Sunat

como veran aparecen los tipos de cambios de los cuales se rige mi empresa, ahora quisiera si hay alguna forma de obtener el dato ejemplo que ahora estemos dia 24 en la web hay una columna que dice dia y otra compra y venta  obtener eso dos valores compra y venta del dia tal
se podra realizar con powerbuilder


F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: obtener dato de una web
« Respuesta #1 en: Domingo 25 de Octubre de 2009, 15:11 »
0
Relativamente Facil si se utiliza un objeto HTTPRequest, como se usa para AJAX

Te pongo un ejemplo sencillo de como leer una pagina con este metodo, por supuesto hay otros metodos... entre ellos insertar un webbrowser de los que recuerdo ahorita...

Código: Visual Basic
  1.  
  2. OleObject HTTPRequest
  3. Long ret,ll_PosicionCadena
  4. Boolean lb_Error
  5. String ls_HTML,ls_URL,ls_Cadena
  6.  
  7.  
  8. HTTPRequest = Create OLEObject
  9. ret = HTTPRequest.ConnectToNewObject( "Msxml2.XMLHTTP" )
  10.  
  11. if ret<0 then
  12.     ret = HTTPRequest.ConnectToNewObject("Microsoft.XMLHTTP" )
  13. end if
  14.  
  15. // Si ocurre un error detenemos la rutina
  16. if ret <0 then
  17.     MessageBox('Error','No ha sido posible crear el objeto')
  18.     return
  19. end if
  20.  
  21. //Llamar Pagina
  22. ls_URL = "http://www.sunat.gob.pe/cl-at-ittipcam/tcS01Alias"
  23.  
  24. lb_Error=false
  25. HTTPRequest.open("GET",ls_URL,false)
  26. HTTPRequest.send()
  27.  
  28. if HTTPRequest.status=200 then
  29.     ls_HTML = HTTPRequest.responseText
  30.     yield()
  31. else
  32.     ls_HTML ='Sitio No Disponible'
  33.     lb_Error=true
  34. end if
  35.  
  36. //Obtenemos el Codigo de la Pagina HTML
  37. //MessageBox(ls_URL,ls_HTML) <==============================
  38.  
  39. if not lb_Error then
  40.     //Buscar Una Cadena en el Codigo Fuente
  41.     ls_Cadena ='Para efectos del Impuesto'
  42.     ll_PosicionCadena = Pos(ls_HTML,ls_Cadena)
  43.    
  44.     if ll_PosicionCadena >0 then /* Cadena Encontrada */
  45.  
  46.         /* Mostrar la cadena que aparece en el sitio (como Ejemplo):
  47.             =========================================
  48.                         "   Para efectos del Impuesto a la Renta, se deberá tomar el tipo de cambio de cierre, al 31 de Diciembre del ejercicio correspondiente  "
  49.             =========================================
  50.         */ 
  51.             MessageBox('SoloCodigo.com - F_Tanori ','~n'+'SUNAT dice: ~n ~n'+mid(ls_HTML,ll_PosicionCadena,135) +'~n ~n'+ls_URL)
  52.         end if
  53.        
  54. end if
  55.  
  56.  

El ejemplo esta hecho 'continuo' para efectos practicos, pero lo ideal es separarlo ya sea creando una clase para esta tarea o en funciones, la busqueda es solo una pista, tambien puedes usar expresiones regulares, bueno eso ya corre por tu cuenta

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

darksito

  • Miembro MUY activo
  • ***
  • Mensajes: 145
  • Nacionalidad: pe
    • Ver Perfil
Re: obtener dato de una web
« Respuesta #2 en: Domingo 25 de Octubre de 2009, 15:24 »
0
gracias por tu pasciencia man eres un +10 :)


F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: obtener dato de una web
« Respuesta #3 en: Miércoles 28 de Octubre de 2009, 18:00 »
0
^_^
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

dany22_

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: obtener dato de una web
« Respuesta #4 en: Sábado 3 de Mayo de 2014, 19:00 »
0
Relativamente Facil si se utiliza un objeto HTTPRequest, como se usa para AJAX

Te pongo un ejemplo sencillo de como leer una pagina con este metodo, por supuesto hay otros metodos... entre ellos insertar un webbrowser de los que recuerdo ahorita...

Código: Visual Basic
  1.  
  2. OleObject HTTPRequest
  3. Long ret,ll_PosicionCadena
  4. Boolean lb_Error
  5. String ls_HTML,ls_URL,ls_Cadena
  6.  
  7.  
  8. HTTPRequest = Create OLEObject
  9. ret = HTTPRequest.ConnectToNewObject( "Msxml2.XMLHTTP" )
  10.  
  11. if ret<0 then
  12.     ret = HTTPRequest.ConnectToNewObject("Microsoft.XMLHTTP" )
  13. end if
  14.  
  15. // Si ocurre un error detenemos la rutina
  16. if ret <0 then
  17.     MessageBox('Error','No ha sido posible crear el objeto')
  18.    return
  19. end if
  20.  
  21. //Llamar Pagina
  22. ls_URL = "http://www.sunat.gob.pe/cl-at-ittipcam/tcS01Alias"
  23.  
  24. lb_Error=false
  25. HTTPRequest.open("GET",ls_URL,false)
  26. HTTPRequest.send()
  27.  
  28. if HTTPRequest.status=200 then
  29.     ls_HTML = HTTPRequest.responseText
  30.     yield()
  31. else
  32.     ls_HTML ='Sitio No Disponible'
  33.    lb_Error=true
  34. end if
  35.  
  36. //Obtenemos el Codigo de la Pagina HTML
  37. //MessageBox(ls_URL,ls_HTML) <==============================
  38.  
  39. if not lb_Error then
  40.     //Buscar Una Cadena en el Codigo Fuente
  41.     ls_Cadena ='Para efectos del Impuesto'
  42.    ll_PosicionCadena = Pos(ls_HTML,ls_Cadena)
  43.    
  44.     if ll_PosicionCadena >0 then /* Cadena Encontrada */
  45.  
  46.         /* Mostrar la cadena que aparece en el sitio (como Ejemplo):
  47.             =========================================
  48.                         "   Para efectos del Impuesto a la Renta, se deberá tomar el tipo de cambio de cierre, al 31 de Diciembre del ejercicio correspondiente  "
  49.             =========================================
  50.         */  
  51.             MessageBox('SoloCodigo.com - F_Tanori ','~n'+'SUNAT dice: ~n ~n'+mid(ls_HTML,ll_PosicionCadena,135) +'~n ~n'+ls_URL)
  52.        end if
  53.        
  54. end if
  55.  
  56.  

El ejemplo esta hecho 'continuo' para efectos practicos, pero lo ideal es separarlo ya sea creando una clase para esta tarea o en funciones, la busqueda es solo una pista, tambien puedes usar expresiones regulares, bueno eso ya corre por tu cuenta

Saludos




Hola que tal como estas quisera pedirte porfavor si me podrias ayudar con un codigo asi para obtener el tipo de cambio de sunat  visual basic 6