Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Extraer código fuente html de página web (https://www.clubdelphi.com/foros/showthread.php?t=26922)

Casimiro Notevi 07-11-2005 22:18:34

Extraer código fuente html de página web
 
Hola de nuevo, aquí estoy de vuelta con una pregunta rara... es que últimamente me piden unas cosas...:confused:

Me hace falta, desde un programa delphi, extraer el código fuente de una página web que esté abierta.

Ejemplo: en el firefox, iexplorer, mozilla, konqueror... estamos en la página de google. Pues bien, desde "nuestro" programa pulsamos un botoncito y el código fuente (html/javascript...) de google se copia a un memo/richedit de nuestro programa.

Esto es como el circo, más difícil todavía, y al final cuando doy presupuesto se asustan y se olvidan del tema, hacen click con botón derecho sobre la página->ver código fuente->copiar->pegar al editor y listo.

En fin, es por si acaso conocéis alguna función o truquito para hacerlo, tampoco es muy importante como para que os quite el sueño :D

ContraVeneno 08-11-2005 00:39:35

¿Puedo preguntar porque quieres ver el código fuente?
Si tu respuesta es que si puedo, pues:
No se que tan fácil pueda ser para un usuario común el tratar de leer el código fuente de una página que utiliza, php, javascript, css, html, asp, funciones, tags o demás mugreros (o todos juntos al mismo tiempo).
De cualquier manera mis pocos conocimientos no me permiten imaginar de que manera se podría hacer, además considerando que algunos autores no permiten que su código se haga público.
pero: ¿porque o para que quieres ver el código fuente?


Y si tu respuesta es que no, entonces has de cuenta que no pregunte nada. :D

roman 08-11-2005 01:40:53

Cita:

Empezado por ContraVeneno
el código fuente de una página que utiliza, php, javascript, css, html, asp, funciones, tags o demás mugreros (o todos juntos al mismo tiempo).

En principio, será imposible que vea código php o asp ya que se trata de código del lado del servidor que, como tal, no llega al navegador.


Cita:

Empezado por ContraVeneno
además considerando que algunos autores no permiten que su código se haga público.

y tratándose de html, javascript, css, pues no hay forma de que eviten que sea público.

// Saludos

JXJ 08-11-2005 03:00:26

Recuerdo que se puede hacer un pequeño
navegador web. con el Twebexplorer
y hacer un parseo. Asi es más facil..
tu suminitras elnavegador web.

Lo dificil es que sin importar el navegador web
ya sea firefox. IE. netscape. o cualquiera.

hacer llamdas a las funciones., para que obtengas el codigo fuente.

Por ejemplo. los programas que rellenan formularios
en sitios web. como los datos. personales.
direcciones fisicas.
Tienen plug ins que se acoplan a los distintos
navegadores.


Otra forma. tambien se me ocurre, es
hacer un hook de la ventana activa. o
desde un tlistview. seleccionar la ventana del
navegador activa. y llamar a los commandos
de página->ver código fuente->copiar->
para pegar al editor

´¿Cuanto les pediste?

y ¿cual es la utilidad de ese sistema.?

Casimiro Notevi 08-11-2005 09:06:01

Iba a responder a ContraVeneno, pero ya lo ha hecho roman.

No he entregado ningún presupuesto porque antes tenía que ver si era posible. Mejor le digo al cliente que lo olvide.

Gracias de todas formas.

ContraVeneno 08-11-2005 16:14:57

Con lo de php o asp, me refería que el desarrollador de la página puede "leer" el código de manera más fácil, comparado con cualquier otro que va a "leer" puro html (definitvamente no me refería que hiban a ver código php/asp); es decir, puede que el desarrollador vea una sola línea con una instrucción php fácil de entender, la cuál se puede convertir en muchas líneas html, haciendo muy dificil (imposible para los que no somos expertos) de entender.

Y con lo de lo público y lo privado, pues si, estando en internet deja de ser privado y se convierte en público. Pero creo haber visto en algunas páginas que bloquean el acceso al código fuente, algunas otras que en su código fuente colocan comentarios específicos respecto a no copiar y/o utilizar sus funciones o código; de ahí mi comentario al respecto.

Casimiro Notevi 08-11-2005 18:49:39

Cita:

Empezado por JXJ
Otra forma. tambien se me ocurre, es
hacer un hook de la ventana activa. o
desde un tlistview. seleccionar la ventana del
navegador activa. y llamar a los commandos
de página->ver código fuente->copiar->
para pegar al editor

Eso podría ser, le echaré un vistazo a ver qué tal :rolleyes:

OSKR 08-11-2005 22:15:23

Pues aqi mismo en el foro vi el codigo de un chamo q mostraba la pagina q tenia abierta el usuario bien sea por netscape, mozilla-firefox, IE, etc, bueno!! el caso es q una vez tengas esa URL puedes conectarte por un socket TCP a esa URL siguiendo las especificaciones del protocolo http y ahi recibiras el codigo q el web browser ha de mostrar por pantalla, hace poco se hizo algo parecido en un proyecto de comunicaciones en mi universidad para q se le mostrara al usuario los tipos de carro q se ofrecian en la pagina y no el resto de la pagina, de esta manera se hizo, pero claro!!! era por http, ahora si es https u otro deberias usar los RFC's de esos otros protocolos

Casimiro Notevi 09-11-2005 01:09:41

Y recuerdas qué hilo es?, puedes dar una pista por dónde buscar? Gracias.

roman 09-11-2005 01:38:38

No estaría 100% seguro pero quizá se refiere a la compnente THistorialUrls del compañero dec, que podrás encontrar en su página.

// Saludos

OSKR 11-11-2005 16:43:12

recuerdo q tenia esto:
publicado por Jorodgar:
Código:

unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DDEman, StdCtrls;
type TForm1 = class(TForm)
                                        Button1: TButton;
                                        Edit1: TEdit;
                                        Edit2: TEdit;
                                        procedure Button1Click(Sender: TObject);
                                        private { Private declarations }
                                        public { Public declarations }
                                        procedure GetCurrentURL (var URL, Title : string);
                                        end;
var Form1: TForm1;
        implementation {$R *.dfm}
procedure TForm1.GetCurrentURL (var URL, Title : string);
 var DDEClient : TDDEClientConv;
          s : string;
 begin s := '';
 try
  DDEClient := TDDEClientConv.Create(self);
  with DDEClient do
  begin
        if SetLink('IExplore','WWW_GetWindowInfo') then
                s := RequestData('0xFFFFFFFF,sURL,sTitle')
        else
          if SetLink('Netscape','WWW_GetWindowInfo') then
                  s := RequestData('0xFFFFFFFF,sURL,sTitle')
          else
                if SetLink('Mosaic','WWW_GetWindowInfo') then
                        s := RequestData('0xFFFFFFFF,sURL,sTitle')
                else
                        if SetLink('Netscp6','WWW_GetWindowInfo') then
                          s := RequestData('0xFFFFFFFF,sURL,sTitle')
                else
                        if SetLink('Mozilla','WWW_GetWindowInfo') then
                          s := RequestData('0xFFFFFFFF,sURL,sTitle')
                        else
                          if SetLink('Firefox','WWW_GetWindowInfo') then
                                s := RequestData('0xFFFFFFFF,sURL,sTitle');
                        end;
                        if s <> '' then
                          begin
                                delete(s,1,1);
                                URL := copy(s,1,pos('","',s)-1);
                                delete(s,1,pos('","',s)+2);
                                Title := copy(s,1,pos('"',s) - 1);
                  end;
                  exit;
                  except MessageDlg('URL attempt failed!',mtError,[mbOK],0);
                end;
 end;
 procedure TForm1.Button1Click(Sender: TObject);
 var URL : string; Title : string;
 begin
  GetCurrentURL (URL, Title);
  Edit1.Text := URL;
  Edit2.Text := Title;
 end;
 end.

y digo recuerdo porq solo guardo las paginas, no los links :D, aja còdigo mas o menos arreglado, pasa q fue un copie-y-pegue de una pagina guardada y no tenia idea de q esto iba a pasar, otra cosa, no pude responder :mad: :mad: :mad: :mad: :mad: ni idea de porq no se me permitia, la guia o guias de estilo nunca las he leido (por falta de tiempo) pero actuo por intuición y experiencia en uno q otro foro........disculpen el anterior desorden

Casimiro Notevi 11-11-2005 21:46:56

Qué paso? cuidadín con ese código :confused:

ContraVeneno 11-11-2005 21:51:48

[Fatal Error] Proyecto.dpr(1): Could not compile used unit

me da un error en la línea 1

:D:D
NOta:
Este mensaje es sarcástico hasta que corrigan el código de arriba, despues de lo cuál, ya no se va a entender el sarcasmo.

Casimiro Notevi 11-11-2005 22:16:11

Bueno, lo que quiero decir es que me "descuadra" toda la pantalla con el mensaje, un arreglillo, porfa, OSKR. :)

roman 11-11-2005 22:21:44

Cita:

Empezado por Casimiro Notevi
Bueno, lo que quiero decir es que me "descuadra" toda la pantalla con el mensaje, un arreglillo, porfa, OSKR. :)

Bueno, al compilador le da lo mismo si todo el código
está escrito en una sóla línea. De la misma forma, aquí
debemos tener esa capacidad; si no, leete la otra guía de estilo

// Saludos

Casimiro Notevi 11-11-2005 22:27:35

jeejeje, desde luego que sí. :D

maeyanes 11-11-2005 22:30:06

Recuerda que nosotros tenemos vista de compilador... :p


La franja horaria es GMT +2. Ahora son las 15:29:08.

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