Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-05-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
llenar datos en una WEB y obtener resultados

desde hace mucho tiempo tuve problemas en resolver un tema que tenia con una pagina llamada SUNAT, en donde obtenia el tipo de cambio

debo reconocer que me costo bastante trabajo entender el uso de IdHttp y de como "lee" una web

es este de aqui http://www.clubdelphi.com/foros/showthread.php?t=91912

ahora tengo un problema "similar" al cual intente darle el mismo tratamiento que utilice para el primer problema, pero no me da resultado

la pagina es

https://e-consultaruc.sunat.gob.pe/c...uc/jcrS00Alias

si se dan cuenta hay que colocar 2 datos RUC y CAPTCHA, luego de presionar buscar "devuelve datos los cuales debo interpretar"


cuando aplico el mismo procedimiento del post adjunto me aparece un mensaje de error que dice

"IOHandler value is not valid"


esta pagina no es muy diferfente a la otra, en ambas debo colocar datos, pero esta ultima al parecer tiene algo especial que no logro entender

si alguien me entendio, espero pueda darme una mano

por lo pronto estoy investigando como "leer" un captcha y convertirlo en texto para "ingresarlo" en la web
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 07-05-2019
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

El error "IOHandler value is not valid" ocurra, probablemente, porque estás intentando una petición HTTPS, pero, no cuentas con lo necesario para tratar con este tipo de conexiones, diferentes de las HTTP "normales". Busca información al respecto: con Indy se pueden usar las DLL adecuadas para evitar el problema, mejor dicho, para poder trabajar con peticiones HTTPS.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 07-05-2019
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Además de lo que apunta dec, me pregunto, ¿cómo vas a colocar el captcha? Uno e los objetivos de un captcha es, precisamente, evitar este tipo de atomatizaciones.

// Saludos
Responder Con Cita
  #4  
Antiguo 07-05-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
La web pertenece al estado peruano, es el ente recaudador de impuestos y tambien contiene el numero de RUC (registro unico de contribuyentes) de todos los contribuyentes valga la redundancia.

entonces la idea es que cuando un cliente/proveedor nuevo sea registrado en el sistema, se busque el numero de RUC, en esa web y obtener automaticamente los datos (ahora solo RUC y razon social y/o nombre de la empresa - anterioemnete venia con direccion / ubicacion etc)

un amigo me paso un procedimiento donde abro la web en cuestion y lleno los datos manualmente y luego "obtengo" la informacion solicitada, funciona, pero queria ver si hay una opcion mas automatizada
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 07-05-2019
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Talking

Estimado Oscarac puede intentar lo siguiente:

Fuente de consulta: https://github.com/JossMP/sunatphp

1) Se debe obtener el numero aleatorio correspondiente al captcha, para ello se utiliza el siguiente enlace

http://e-consultaruc.sunat.gob.pe/cl...?accion=random

Código Delphi [-]
Const
URLCaptcha='http://e-consultaruc.sunat.gob.pe/cl-ti-itmrconsruc/captcha?accion=random';
var
  retval:String;
begin
    {Ejemplo...}
     edtCaptcha.Text:=IdHTTP1.Get(URLCaptcha);
end;

2) Lo siguiente es formar el URL para realizar la consulta.
Código Delphi [-]
URLQuery='http://e-consultaruc.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?nroRuc=%s&accion=%s&numRnd=%s';

var
   url:String;
begin
     url:= Format(URLQuery,[edtRUC.Text,  {Número de RUC}
                               edtConsPorRuc.Text, {El contenido debe ser "consPorRuc"}
                               edtCaptcha.Text]);   {Numero aleatorio correspondiente al Captcha}

     memo1.lines.Text:=IdHTTP1.Get(url);
end;

En memo1 quedara el contenido de la pagina web, lo siguiente es buscar la información...


Espero le ayude...

Última edición por Casimiro Notevi fecha: 08-05-2019 a las 02:05:43. Razón: Comillas " por '
Responder Con Cita
  #6  
Antiguo 07-05-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
voy a probar la forma como tu indicas CLoayza, pero crees que tambien puedas compartir la fuente?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 08-05-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
si, perfecto
funciona
en el memo se "carga" el contenido de la web

existe una forma de ver mas amigable la información contenida en el memo?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #8  
Antiguo 08-05-2019
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por cloayza Ver Mensaje
Estimado Oscarac puede intentar lo siguiente:

Fuente de consulta: https://github.com/JossMP/sunatphp

1) Se debe obtener el numero aleatorio correspondiente al captcha, para ello se utiliza el siguiente enlace
¡Vaya! ¡Qué buen sistema de captcha!

// Saludos
Responder Con Cita
  #9  
Antiguo 08-05-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por roman Ver Mensaje
¡Vaya! ¡Qué buen sistema de captcha!

// Saludos
tambien me parecio muy bueno

estuve revisando los resultados de la web, no conozco mucho HTML pero he encontrado esta tabla
Cita:
<td align="center" valign="middle" colspan=1>
<form name="forminfoHist" method="post" action="/cl-ti-itmrconsruc/jcrS00Alias">
<input name="submit" type="submit" class=form-button onClick="submitInforHist()" value="Informaci&oacute;n Hist&oacute;rica">
<input type="hidden" name="accion" value="getinfHis">
<input type="hidden" name="nroRuc" value="10094526332">
<input type="hidden" name="desRuc" value="ASCENCIO CARRASCO OSCAR MAURICIO">
</form>
</td>
forminfoHist

y hay 2 "campos"

nroRUC y desRUC

algun procedimiento para "capturar" esa informacion?

ojo que estoy usando idHttp y que los valores los estoy almacenando en un memo, imagino que el resultado deberia almacenarlo en un componente que maneje HTML
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #10  
Antiguo 08-05-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
¡Vaya! ¡Qué buen sistema de captcha!
// Saludos
Buenísimo, pongamos la mejor cerradura del mercado, pero deja la llave puesta en la misma.
Responder Con Cita
  #11  
Antiguo 08-05-2019
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Buenísimo, pongamos la mejor cerradura del mercado, pero deja la llave puesta en la misma.
También lo pensé, pero no quise comentarlo...

Creo que hay espacio para mejorar la seguridad...

Saludos
Responder Con Cita
  #12  
Antiguo 08-05-2019
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado Oscarac, me intereso el tema y le di un par de vueltas, a ver que le parece...



Código Fuente

Saludos cordiales
Responder Con Cita
  #13  
Antiguo 08-05-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
las cosas que puedes hacer cuando sabes lo que haces

muchas Gracias
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #14  
Antiguo 09-05-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
He subido el ejemplo a nuestro "FTP", para que no se pierda.
Responder Con Cita
  #15  
Antiguo 09-05-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
sale un mensaje de error en esta linea

Código Delphi [-]
          key  :=mmStripHTML.Strings.KeyNames[i];
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #16  
Antiguo 09-05-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por oscarac Ver Mensaje
sale un mensaje de error en esta linea
Y el error es...
Responder Con Cita
  #17  
Antiguo 25-07-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
hola Cloayza

estuve revisando el codigo fuente que colocaste aqui
estoy intentando colocarlo en una libreria, pero no entiendo porque me sale un error

Código Delphi [-]
function _buscarRUC (var _RUC, _RazonSocial, _Direccion :String; _bRUC : Boolean) : string;
var URLCaptcha : string;
    URLQuery : string;
    url:String;
    edtCaptcha, edtConsPorRuc : string;
    _Cadena : WideString;
    i: Integer;
    SRazon : string;
    position, vContador : Integer;
    vCHAR, vCadena: string;
    IdHTTPSunat : TIdHTTP;
    mmData : TMemo;
begin
  _bRUC := False;
  if (_RUC <> '') and (Length (_RUC) = 11) then
  Begin
    _bRUC := true;
    IdHTTPSunat := TIdHTTP.Create();
    edtConsPorRuc := 'consPorRuc';
    URLCaptcha := 'http://e-consultaruc.sunat.gob.pe/cl-ti-itmrconsruc/captcha?accion=random';
    edtCaptcha :=IdHTTPSunat.Get(URLCaptcha);
    URLQuery := 'http://e-consultaruc.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?nroRuc=%s&accion=%s&numRnd=%s';
    mmData := TMemo.Create(nil);  // si coloco self no me lo compila
    url:= Format(URLQuery,[_RUC,  {Número de RUC}
                           edtConsPorRuc, {El contenido debe ser "consPorRuc"}
                           edtCaptcha]);   {Numero aleatorio correspondiente al Captcha}

     mmData.lines.Text:= IdHTTPSunat.Get(url);   //// aqui sale error

     mmData.lines.Text:= replace_char_with_codes(mmData.lines.Text);

     _RUC := GetValues('xxxxxxxxx">Número de RUC: ',mmData.lines.Text);
  End;

mmData.lines.Text:= IdHTTPSunat.Get(url); //// aqui sale error


en esta linea aparece el error

EinvalidOperation with mensage 'Control' has no parent window`

el xxxxxx en la funcion getValues
va esto

[text](<td width="18%"[ ]*colspan=1[ ]*class="bgn"*>[/text]
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #18  
Antiguo 25-07-2019
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 910
Poder: 22
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Estimado Oscarac, realice las siguientes modificaciones.
Código Delphi [-]
var
...
mmData : TStrings; //TMemo;
begin
...
     mmData := TStringList.create; //TMemo.Create(nil);  // si coloco self no me lo compila
...
    mmData.Text:= IdHTTPSunat.Get(url);   //// aqui sale error
    mmData.Text:= replace_char_with_codes(mmData.Text);   
     _RUC          := GetValues('xxxxxxxxx">Número de RUC: ',mmData.Text);
end;

Saludos cordiales

Nota: El error le indica que el TMemo es un componente visual y por lo tanto requiere tener un padre (ParentControl)...
Responder Con Cita
  #19  
Antiguo 25-07-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por cloayza Ver Mensaje
Estimado Oscarac, realice las siguientes modificaciones.
Código Delphi [-]
var
...
mmData : TStrings; //TMemo;
begin
...
     mmData := TStringList.create; //TMemo.Create(nil);  // si coloco self no me lo compila
...
    mmData.Text:= IdHTTPSunat.Get(url);   //// aqui sale error
    mmData.Text:= replace_char_with_codes(mmData.Text);   
     _RUC          := GetValues('xxxxxxxxx">Número de RUC: ',mmData.Text);
end;

Saludos cordiales

Nota: El error le indica que el TMemo es un componente visual y por lo tanto requiere tener un padre (ParentControl)...
ah ok
el TMemo necesito un "contenedor" para ser mostrado, eso es lo q entiendo...
voy a probar
gracias
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #20  
Antiguo 08-08-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
Se me ocurre una pregunta


solo con idHttp se puede acceder a la informacion de una web?

existen otros componentes que me permitan hacer lo mismo?
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por oscarac fecha: 08-08-2019 a las 01:07:34.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Llenar datos de TRemotable jlrdz Internet 2 04-05-2015 18:10:16
realizar consulta sin obtener resultados es muy lenta erickperez6 Firebird e Interbase 2 06-03-2013 20:26:41
Llenar un String con datos de una SQL jafera Conexión con bases de datos 4 11-12-2009 11:01:04
Llenar datos en StringList Caro OOP 2 12-11-2005 18:20:57
Obtener resultados de ShellExecute m@kio API de Windows 5 12-08-2005 17:17:09


La franja horaria es GMT +2. Ahora son las 12:10:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi