Ir ao conteúdo
  • Cadastre-se

Como ler o conteúdo de um site por um Memo?


Posts recomendados

EDIT: "Poxa pessoal, ninguém pode dar uma força?

Como ler o conteúdo de um site por um Memo?

tentei pegar o código-fonte desta forma, mas parece que nem tudo que está escrito na página fica ali.. E o que eu queria era justamente ler a página.

Fiz dessa forma:


unit Farejador;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, XPMan;

type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Memo1: TMemo;
Button1: TButton;
XPManifest1: TXPManifest;
procedure WebBrowser1Enter(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WebBrowser1Enter(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.google.com.br');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
oStringList: TStringList;
begin
oStringList := TStringList.Create;
try
oStringList.Text := WebBrowser1.OleObject.document.Body.InnerHTML;
Memo1.text:=oStringList.text;
finally
oStringList.Free;
end;

end;
end.

Se nem todos os textos de uma página ficam no codigo-fonte, como faço para ler tudo o que está está escrito nela?

Link para o comentário
Compartilhar em outros sites

Oi Will702!! Tentei fazer isso.. Porém apenas algumas páginas, quando vou em (Arquivo>Salvar como>Página completa) apenas em alguns sites o html parece "completo"..

Fiz errado? E, como poderia fazer para o Delphi baixar o HTML completo, sem ser manualmente..?

ENCONTREI ISSO, não entendi como uso esse procedimento, por favor ajuda alguém ai:

procedure TForm2.Buscar(WB: TWebBrowser; Text: string);
var
tr: IHTMLTxtRange;
documento: IHTMLDocument2;
index: OleVariant;
frame_dispatch: IDispatch;
framewnd: IHTMLWindow2;
framedoc: IHTMLDocument2;
begin
documento := WebBrowser1.Document as IHTMLDocument2;
index := 0;
frame_dispatch := documento.Frames.Item(index);
if Assigned(frame_dispatch) then
begin
framewnd := frame_dispatch as IHTMLWindow2;
framedoc := framewnd.document;
framedoc.Get_body.Get_outerText;
if Assigned(WB.Document) then
begin
tr := ((framedoc AS IHTMLDocument2).body AS IHTMLBodyElement).createTextRange;
if tr.findText(Text, 1, 0) then
begin
ShowMessage('achou');
end;
end;
end;

Link para o comentário
Compartilhar em outros sites

Na verdade quero apenas poder copiar tudo o que está escrito em um site (a parte visível à qualquer usuário) e colocar isso, em forma de texto, dentro de um Memo. Logo, pouco importa se vou fazer isso copiando o código fonte HTML, ou de outro jeito qualquer..

O problema é que não dá de baixar o código fonte completo de muitos sites... E é aí que parece complicar.

Então, caso você ou alguém aqui saiba alguma forma de se fazer isso, pra mim qualquer uma vale.

Valeu? Abraços!

Link para o comentário
Compartilhar em outros sites

  • 5 anos depois...

Consegui obter o conteúdo de uma pagina utilizando o seguinte:

 

Incluí está classe:

Uses URLmon;

 

e utilizei essa função:

URLDownloadToFile(nil,pchar(link),pchar(destino),0,nil);

 

onde link é o endereço da página e destinos é o patch + o nome do arquivo.

 

para puxar para o Memo use o seguinte:

 

Memo1.Lines.LoadFromFile(destino);

 

Uso Delphi 7 e precisei utilizar isso para pegar o conteúdo de uma página gerada dinamicamente.

 

Comigo está funcionando. Abraços!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!