FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
solución con webbrowser
Hola, acavo de poner un mensaje de ayuda en este foro de internet, pero leyendo este tema creo que acá esta mi solución, y era algo tan simple como lo que puso bicho
MEMO1.Text := WebBrowser1.OleObject.Document.body.innerHTML; Mi problema lo resolvería con este compenente creo yo porque al sitio que estoy consultando tiene algunos redireccionamientos. Ahora lo que yo necesito es abrir el sitio, pero enviando algunos parámetros por POST. Me parece que esto si se puede con este componente. Veo que por aca la tienen reclara con este tema, asi que espero alguna ayuda. Luego una vez que trajo los datos y haga todos los redireccionamientos que quiera recién ahí examinaría el código HTML que con eso ya estaría resuelto el problema. Aca está lo que quiero, que puse en otro mensaje: Necesito hacer una consulta a un sitio web publico, donde envio unas variables por POST y recibo todo un HTML con los resultados. Estuve renegando un poco con DELPHI hasta que lo logré unsando un componente IdHTTP. Aparentemente funciona pero no me trae resultados, es como que hace una consulta nula. Gracias a este componte me detecta que tiene un redireccionamiento no se si esto pude influir, yo creo que no. Porque a esto mismo lo hice con flash, envio y recibe todo bien, me trae la consulta correcta, pero me corta el HTML, no me lo trae completo. Yo creo que es posible hacerlo, pero no se si estoy lejos o cerca, lo que se me había ocurrido era como hacer un internet explorer propio, donde yo pueda tener acceso al codigo html. Pero no manejo casi nada los componente de internet de delphi, yo creo que a esto un experto lo saca al instante. Espero que alguien me pueda ayudar. Aca pongo el ejemplo hecho con delphi 7, por si alguien quiere investigar. Gracias. www.dbhost.com.ar/pruebaindy.zip |
#2
|
||||
|
||||
Wenas.
Vi este hilo y me intereso el tema de poder sacar información directamente de una Web. Hice pruebas con los ejemplos que pusisteis y funcionaban perfectamente. (incluso poniendo parámetros para hacer las búsquedas, no sabia que se podía hacer) Ahora llega mi problema: Llevo una temporada jugando al Travian (juego por Web de gestionar los recursos de tu aldea y hacer soldados, como un civilization pero mas sencillito y en Web). Tiene una opción de sacar un pequeño mapa de tu zona con tu aldea en el centro y poder ver las aldeas que tienes mas cercanas. Además puedes ver algo de información de las aldeas vecinas. Esta seria la información que me interesaría para sacar unas estadísticas. Ya he visto la estructura del html y creo que no tendré problemas para coger esos datos. El problema es que para entrar en la Web me pide usuario y password y no consigo pasar de ahí al usar vuestro ejemplos (cambiando los parámetros por supuesto, poniendo mi usuario y mi password). (creo que tal vez sea algo de las cookies pero no se entrar en ese tema) He creado una aldea de pruebas por si queréis ver como es la web y los datos pide. Web: http://s3.travian.net/login.php Usuario: prueba_roger Password: 12345678 procedure TForm1.Button2Click(Sender: TObject); var data: TIdMultiPartFormDataStream; begin data := TIdMultiPartFormDataStream.Create; try { add the used parameters for the script } data.AddFormField('e7a9175','prueba_roger'); data.AddFormField('e9cb9d1','12345678'); Memo1.Lines.Text := IdHTTP1.Post('http://s3.travian.net/dorf1.php', data); finally data.Free; end; end; Un Saludo, Roger. |
#3
|
||||
|
||||
Hola,
Mirando un poco por encima el código HTML de la página que comentas, para empezar, se incluyen más campos además del "login" y el "password", aunque, ciertamente, no sé si estos serán "obligatorios" para una correcta autentificación. Por otro lado, alguno de los campos que digo que se incluyen (aunque ocultos al usuario) tienen un valor aleatorio, es decir, parece que no siempre es el mismo, incluso los propios campos "login" y "password" tienen nombres un tanto extraños, da la impresión que acaso también aleatorios. Todo esto puede ser para complicar el login a usuarios, precisamente, que traten de hacerlo desde fuera de la página Web, es decir, justo lo que tratas de conseguir tú. No sé. Tal vez no, tal vez sea por otro motivo que se nos escape. No sé... sería cuestión de hacer una serie de pruebas,... y a lo peor no tener el éxito esperado, claro. |
#4
|
||||
|
||||
Además, creo que se usan cookies. ¿Indy maneja las cookies?
|
#5
|
||||
|
||||
Hola,
Sí; creo que Indy cuenta con componentes para manejar las Cookies, empero, no sé si en este caso se trata de esto, puesto que las Cookies parecen utilizarse (en este caso) para almacenar datos relativos a la autentificación, pero, para lograr cierta "persistencia" de la misma, es decir, lo que es "entrar" en el sistema me parece que no tiene que ver con las "Cookies", en este caso. De todas, todas, las pruebas que he dicho tratarían de ver qué pasa con las Cookies de marras, pero, teniendo en cuenta que hay más campos que el "login" y el "password"; que dichos campos parecen variar aleatoriamente en cada carga de la página... no sé, no sé. Me parece una especie de "sistema" para impedir, precisamente, lo que trata de hacerse. ¿Entonces estoy diciendo que no puede hacerse? Bueno. Acaso eso es lo que tratan los desarrolladores de conseguir... pero esto no quiere decir que no pueda hacerse, imagino. |
#6
|
||||
|
||||
Cita:
Cita:
Existe otra forma mas facil de hacerse, con lo que yo solucione el problema, pero con Indy quedaria mejor resuelto. Fue utilizar el componente TWebBrowser y lo manejas desde ahi, el se encarga de las cookies y demas problemas. Pero igual esteria bueno aprender a manejarla sesion con Indy, y estuve leyendo recien que los ICS tambien permiten cookies pero tampoco encontre un ejemplo sencillo.
__________________
[Crandel] Última edición por Crandel fecha: 10-10-2006 a las 04:07:44. |
#7
|
||||
|
||||
Hola,
Cita:
A ver... Paso 1: descargamos la página Web, esto es, su código fuente Paso 2: "parseamos" el código en busca de todos los campos del formulario Paso 3: Preparamos el "HTTP POST" y procedemos a su envío... Tiene su lógica, ¿no? Tal vez me haya liado antes con lo de los campos... Pero, en cualquier caso, no basta con los campos "login" y "password", o... ¿también en esto me he liado? Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Descargar Formulario | monicasierrar | OOP | 8 | 29-09-2005 18:25:25 |
Descargar DBE | brandolin | Conexión con bases de datos | 4 | 15-05-2004 03:07:21 |
Descargar correo | pepe2000 | Internet | 1 | 17-02-2004 15:54:40 |
descargar una extencion | migueilichenco | Internet | 1 | 28-11-2003 21:23:50 |
Descargar Firebird.. | LucasArgentino | Tablas planas | 1 | 17-11-2003 14:58:04 |
|