ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Postar, capturar dados com Idhttp, Webbrowser

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Out 03, 2007 1:47 pm    Assunto: Postar, capturar dados com Idhttp, Webbrowser Responder com Citação

Hey amigos gostaria de saber qual a melhor abordagem para capturar dados de uma tela de internet (html/javascript) no caso a segunda tela depois do login desta: http://www010.dataprev.gov.br/cws/contexto/hiscre/index.html

bem o login com o webbrowser ja consigo fazer postando os dados e executando o javascript... se alguem tem outra maneira de fazer isto sem utilizar o webbrowser, estava querendo eliminar ele e utilizar idhttp, não o fiz por causa da tecnologia de anti-robô que tem neste site para evitar buscas automáticas...

mais informações neste site onde explico melhor:
http://forum.devmedia.com.br/viewtopic.php?t=90373


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
eduzumm23
Novato
Novato


Registrado: Segunda-Feira, 6 de Fevereiro de 2006
Mensagens: 85

MensagemEnviada: Sex Out 05, 2007 8:17 pm    Assunto: Re: Postar, capturar dados com Idhttp, Webbrowser Responder com Citação

Se voce já tem o endereço URL absoluto apos logado (tente obter com um sniffer).
Vou te sugerir 2 formas:




FORMA 1:

voce poderia usar o metodo Get do TIdHTTP:

Memo1.Lines.Text:= IdHTTP1.Get('endereco_web');

OBS:
Este TMemo vc pode colocar Visible:= False.

Voce pode jogar o retorno do GET para uma variável TList por explo, apenas mencionei o uso do TMemo para ilustrar.



FORMA 2:
Isso vai salvar as tags HTML para um arquivo (que voce pode apagar assim que fechar a aplicação)


Declare a Biblioteca:
USES
Activex;

Declare uma variavel global:

FCompleted: Boolean; // Vai definir se todo o conteudo ja foi carregado
_____________________________________________________
procedure Tfrm_principal.SalvarHTML(const FileName: string; WB: TWebBrowser);
var
PersistStream: IPersistStreamInit;
FileStream: TFileStream;
Stream: IStream;
SaveResult: HRESULT;
begin
while not(FCompleted) do
Application.ProcessMessages;
PersistStream := WB.Document as IPersistStreamInit;
FileStream := TFileStream.Create(FileName, fmCreate);
try
Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
SaveResult := PersistStream.Save(Stream, True);
if FAILED(SaveResult) then
MessageBox(Handle, 'Erro ao salvar o conteudo HTML', 'Error', 0);
finally
FileStream.Free;
end;
FCompleted := False;
end;
_____________________________________________________

Depois nos eventos do TWebbrowser:
procedure TfrmBusca.WebBrowser1DownloadBegin(Sender: TObject);
begin
inherited;
FCompleted := False;
end;

procedure TfrmBusca.WebBrowser1DownloadComplete(Sender: TObject);
begin
inherited;
FCompleted := True;
end;



Exemplo de uso

SalvarHTML('C:\TesteHTML.txt',TWebbrowser1');


SE este codigo salvar parcialmente, é pq não carregou todo o conteudo, entao usa um TTimer com um tempo padrao para salvar...

Valeu
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Sáb Out 06, 2007 11:40 am    Assunto: Responder com Citação

Amigo eu nao estou querendo salvar o html,, isto é moleza, estou querendo é postar dados como os campos deste site que é Número do benefício e data de nascimento, mas queria saber como conseguir a imagem do anti=robô... assim digitaria os caractres da imagem resultante e logaria no
sistema...atualmente já consigo logar no sistema com webbrowser... postando diretamente os dados no webbrowser e executando o javascript sem ter que ficar digitando a toda hora...


Eu queria fazer o mesmo com idhttp, mas por causa do anti-robô nao tenho conseguido...


mais informações no link do outro post que deixei em outro site...



bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
eduzumm23
Novato
Novato


Registrado: Segunda-Feira, 6 de Fevereiro de 2006
Mensagens: 85

MensagemEnviada: Qui Mar 27, 2008 10:34 am    Assunto: Responder com Citação

Se desejas conseguir o valor de uma imagem de autenticação gerada, isso será bem complexo. Vais precisar implementar uma IA (Inteligencia Artificial) do qual eu nem faço ideia.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
shawdown
Profissional
Profissional


Registrado: Segunda-Feira, 1 de Outubro de 2007
Mensagens: 546
Localização: Goiania-GO

MensagemEnviada: Dom Ago 03, 2008 3:48 pm    Assunto: Responder com Citação

Ola johnny conseguiu passar pelo anti-robô?

A uns tempos atras tbm me deparei com este problema a unica solução que tive vou criar um form onde exibe a imagem de verificação para que o usuario a digite-o em um Edit.
Pois na maioria dos sites não seguem um padrão de escrita "para a imagem" senão daria para fazer a leitura da imagem...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
jefmachia
Novato
Novato


Registrado: Quinta-Feira, 24 de Outubro de 2013
Mensagens: 93

MensagemEnviada: Ter Set 29, 2015 6:49 pm    Assunto: Responder com Citação

Amigo ali onde está o endereço da URL no meu caso, eu preciso colocar ali uma variável pois seria o seguinte http.get ('variavel', STRM); ali onde está a variável ele não aceita, vou explicar meu sistema, ele pega o nome da imagem em um BD mysql e depois eu preciso juntar o link tipo www.site.com.br/imagens/variável seria isso, mas o mesmo não aceita a variável com o nome da imagem, se eu coloco o endereço da URL completo ele abre na boa, mas se eu juntar tudo tipo Variável da url padrão + variável do mysql ai ele pipoca... tem alguma ideia de como eu poderia abrir essa url no link do http.get usando a variável ?
Se precisar ver como está já deixo o código sem problemas.
desde já agradeço.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jefmachia
Novato
Novato


Registrado: Quinta-Feira, 24 de Outubro de 2013
Mensagens: 93

MensagemEnviada: Qui Out 01, 2015 10:32 am    Assunto: Responder com Citação

Passei para falar que foi resolvido, o erro era meu, na realidade no servidor estava um arquivo .jpg e eu pedindo para carregar um arquivo.png o erro era totalmente meu, pode ser usado com variável que funciona perfeitamente. Obrigado pelo espaço.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1030
Localização: Cianorte-PR

MensagemEnviada: Qui Out 01, 2015 2:25 pm    Assunto: Responder com Citação

Creio que para By-passar o anti-robo teria que usar OCR, no site da Embarcadero tem um componente
http://cc.embarcadero.com/item/29034
ai vc pode extrair o texto e jogar no campo em maneira automatica.
espero ajude minha sugestao.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
jefmachia
Novato
Novato


Registrado: Quinta-Feira, 24 de Outubro de 2013
Mensagens: 93

MensagemEnviada: Sex Out 02, 2015 11:52 am    Assunto: Responder com Citação

Olá anderbelluno já deu certo aqui, na realidade o que preciso agora e não estou encontrando é uma forma de ele fazer loop em um Timage, de forma que vai pegando as imagens e apresentando uma abaixo da outra no celular, tipo teria que fazer um loop para ir pegando as imagens e ir apresentando dessa forma. Ele teria que incrementar um timage ir criando confirma existe a imagem e ir apresentando um por abaixo da outra. Agradeço se tiver alguma sugestão de como faz, pois eu não consigo na realidade fazer incrementar o timage, eu já pego os valores do banco mas abre em uma só, eu não sei o comando que cria um novo timage. Obrigado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB