Graças a este fórum (Jhonas) consegui fazer scrap a uma página web. Deixo o código de seguida porque pode ser útil para alguém. A minha questão é se esta forma de scrap pode ser otimizada porque para ficheiros web com muitas linhas de código (na ordem dos 2000) este processo é um pouco lento. O que este programa faz é ler linha a linha o ficheiro web e procurar a correspondência. Há alguma otimização possível?
Obrigado
Mario
procedure Tfrmscrapalternativos.Button1Click(Sender: TObject);
var
total:integer;
lReader: TStringReader;
linha,procura:string;
begin
lHTTP := TIdHTTP.Create(nil);
lHTTP.Request.UserAgent :='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
zquery1.First;
total:=zquery1.RecordCount;
for j := 1 to total do
begin
lReader := TStringReader.Create(lHTTP.Get(zquery1.FieldByName('link1').AsString));
procura:='#CC0000;">';
repeat
linha := lReader.ReadLine;
if AnsiContainsStr(linha,procura) then
begin
//faz a as tarefas
break;
end;
until lReader = Nil;
zquery1.Next;
end;
showmessage('terminei');
end;
Pergunta
Mario Lopes
Viva
Graças a este fórum (Jhonas) consegui fazer scrap a uma página web. Deixo o código de seguida porque pode ser útil para alguém. A minha questão é se esta forma de scrap pode ser otimizada porque para ficheiros web com muitas linhas de código (na ordem dos 2000) este processo é um pouco lento. O que este programa faz é ler linha a linha o ficheiro web e procurar a correspondência. Há alguma otimização possível?
Obrigado
Mario
procedure Tfrmscrapalternativos.Button1Click(Sender: TObject); var total:integer; lReader: TStringReader; linha,procura:string; begin lHTTP := TIdHTTP.Create(nil); lHTTP.Request.UserAgent :='Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0'; zquery1.First; total:=zquery1.RecordCount; for j := 1 to total do begin lReader := TStringReader.Create(lHTTP.Get(zquery1.FieldByName('link1').AsString)); procura:='#CC0000;">'; repeat linha := lReader.ReadLine; if AnsiContainsStr(linha,procura) then begin //faz a as tarefas break; end; until lReader = Nil; zquery1.Next; end; showmessage('terminei'); end;
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.