Club Delphi  
    Paypal   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

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

Bueno, te comento que Get sí te regresa el código fuente de una página, pero el de la página que resulta de la llamada a la URL que primero le das como parámetro.

Eso quiere decir que una manera de obtener el código fuente de una URL es ejecutar otra URL que te lleve a ella.

Espero te sirva. Busca un tema que abrí hace tiempo, titulado "Automatización Web", presiento que será de tu interés.

Un abrazo.

Al González.
Responder Con Cita
  #2  
Antiguo 27-09-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Hola Al.

Pues ya lo he visto muuchas veces ese hilo, me lo he leido todito, que por cierto esta muy bueno, ahora regresando al tema, ya se que te regresa el código fuente de una página web, si tienes una página por ejemplo.

http://www.pagina.com/index.php

y si index.php contiene este código.
Código PHP:
      <?php
echo "Hello World!";
?>
y si haces algo como

Código Delphi [-]
showmessage(idHTTP1.Get('http://www.pagina.com/index.php'));

Te regresará un bonito mensajito SOLO con la palabra Hello World
Si es a eso lo que te refieres lo tengo bien claro, pero si no es a eso, pues no he entendido su respuesta, y si es asi, sigo sin saber ¿Como podría bajarme el código fuente de una página web para luego parsearla?
Solo necesito todo el html

saludos!
Responder Con Cita
  #3  
Antiguo 27-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

Sí, sólo te regresará el HTML.
Responder Con Cita
  #4  
Antiguo 27-09-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Hola Al,
Si, eso ya lo sé, pero entonces por que no me regresa TODO el código fuente html de la página que le paso en el idHTTP.get(URL) ??
Solo me regresa como la mitad mas o menos, hay alguna forma de que te regrese TODO el html ?

O no se entiende mi pregunta ? Si es asi me lo dicen y trataré de poner un ejemplo mas claro, y poner la página online mas la aplicación para que vean a que me refiero

Repito ¿como puedo obtener "todo" el código fuente html de una página y pegarla en un memo ?

saludos!
Responder Con Cita
  #5  
Antiguo 27-09-2007
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.610
Poder: 32
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile

Se comprende el planteamiento, pero como no conozco la página en cuestión me sería difícil deducir la causa.

Una alternativa podría ser utilizar un componente TWebBrowser en lugar de TIdHTTP.

Saludos.

Al.
Responder Con Cita
  #6  
Antiguo 27-09-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Poder: 20
BlackDaemon Va por buen camino
Hola Al.

Mira, la página en cuetión seria esta
http://casacimar.com.bo/tarea.html

ahora mi script es este

Código Delphi [-]
procedure TFrmPrincipal.Button1Click(Sender: TObject);
begin
  memo1.text =: IdHTTP1.Get('http://casacimar.com.bo/tarea.html');
end;

Ahora como podrás ver solo me copia un poco mas de la mitad del html en el memo, eso a que se debe ? o como puedo hacer que me lo copie TODO el html ?

saludos!
Responder Con Cita
  #7  
Antiguo 27-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé realmente porqué ocurre, porque, los navegadores que he probado "pueden con ello", pero, en el archivo en cuestión parece darse un problema en la línea 191, columna 7. En ese punto puede verse lo siguiente (examinando el código fuente desde Firefox):

Código:
<td ?owrap align=right>
Y es a partir del signo de interrogación donde deja de descargar (o no puede mostrar... ya digo que no estoy seguro de qué ocurre realmente) el componente IdHttp. Debe tratarse de un problema con la condificación de caracteres... aunque ya digo que los navegadores que he probado se lo tragan, el propio archivo parece tener algunos problemas.

He probado a usar WinInet (tal como muestra seoane), pero, sigue produciéndose el mismo problema. También he probado con "UrlMon.URLDownloadToFile()", pero, igual, el mismo caso.

Pero, para usar URLMon he tenido que descargar un archivo, y me ha dado por revisarlo... y, efectivamente, se descarga el código completamente (superando el error que contiene el archivo HTML), y entonces me he dicho, leche, pues es el Memo, que no puede mostrar el código fuente a partir del "error" (línea 191, etc.).

Pero no... no es del todo el Memo. Porque si pruebas con algo como esto:

Código Delphi [-]
procedure TForm2.Button1Click(Sender: TObject);
var
  t: TStrings;
begin
  t := TStringList.Create();
  try
    t.Text := IdHTTP1.Get('http://casacimar.com.bo/tarea.html');
    t.SaveToFile('C:\test.txt');
  finally
    t.Free();
  end;
end;

... verás que tampoco descargas todo el código fuente del archivo, sino que se "queda" en el punto exacto del supuesto error. Vale. ¿Y entonces qué? Pues el caso es que el archivo se descarga completamente. Fíjate que viene a ocupar unos 12 KB, y estas son las cabeceras que envía la respuesta HTTP:

Código:
Date: Thu, 27 Sep 2007 02:05:00 GMT
Server: NOYB
Last-Modified: Thu, 27 Sep 2007 01:05:42 GMT
ETag: "32c454-3139-91b7c580"
Accept-Ranges: bytes
Content-Length: 12601
Content-Type: text/html
O sea, que el problema lo tenemos en Delphi, que parece "cortar" el contenido del archivo en cuanto llegamos al error de marras. He probado con String, AnsiString, WideString, PChar... pero, nada. No pasa del error. Como se ve el archivo se descarga completamente, pero, no es posible mostrarlo en un Memo, ni copiarlo al portapeles, ni guardarlo en un archivo mediante un TStrings.

Por el momento no se me ocurre qué más hacer. Si tengo que quedarme con algo... tal vez con URLMon, puesto que consigue descargar el archivo completo... ¡pero IdHTTP también, lo que ocurre es que no hay manera de obtener el contenido más allá de donde se localiza el error del archivo y por tanto no podemos guardarlo (como hace URLMon... por su cuenta... a saber cómo)!

Y, por otro lado... de qué te serviría tener el archivo con su contenido completo (aunque erróneo, o problemático, cuando menos), si no hay manera de cargarlo en un Memo, por ejemplo... Pero yo lo dejo aquí, por el momento, a ver si alguien a partir de esto puede aportar alguna otra cosa. Si a mí se me ocurre alguna la comentaré por aquí.

Siento no poder dar una respuesta válida, pero, espero al menos que se entendiera el rollo que he soltado, que, puesto que he ido escribiéndolo según hacía pruebas, lo mismo no ha quedado del todo "cuadrado".
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 27-09-2007 a las 04:23:20.
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
StringList: Modificar un item en particular NEG1414 C++ Builder 3 25-08-2007 20:26:50
Problema con StringList MaMu Varios 2 26-05-2007 21:40:45
Llenar datos en StringList Caro OOP 2 12-11-2005 17:20:57
Recorrer un StringList bustio Varios 2 27-02-2005 19:50:21
Limite del StringList victork_py Varios 8 11-05-2004 22:19:11


La franja horaria es GMT +2. Ahora son las 20:19:54.


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