| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qua Out 03, 2007 1:47 pm Assunto: Postar, capturar dados com Idhttp, Webbrowser |
|
|
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 |
|
 |
eduzumm23 Novato

Registrado: Segunda-Feira, 6 de Fevereiro de 2006 Mensagens: 85
|
Enviada: Sex Out 05, 2007 8:17 pm Assunto: Re: Postar, capturar dados com Idhttp, Webbrowser |
|
|
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 |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Sáb Out 06, 2007 11:40 am Assunto: |
|
|
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 |
|
 |
eduzumm23 Novato

Registrado: Segunda-Feira, 6 de Fevereiro de 2006 Mensagens: 85
|
Enviada: Qui Mar 27, 2008 10:34 am Assunto: |
|
|
| 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 |
|
 |
shawdown Profissional

Registrado: Segunda-Feira, 1 de Outubro de 2007 Mensagens: 546 Localização: Goiania-GO
|
Enviada: Dom Ago 03, 2008 3:48 pm Assunto: |
|
|
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 |
|
 |
jefmachia Novato

Registrado: Quinta-Feira, 24 de Outubro de 2013 Mensagens: 93
|
Enviada: Ter Set 29, 2015 6:49 pm Assunto: |
|
|
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 |
|
 |
jefmachia Novato

Registrado: Quinta-Feira, 24 de Outubro de 2013 Mensagens: 93
|
Enviada: Qui Out 01, 2015 10:32 am Assunto: |
|
|
| 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 |
|
 |
anderbelluno Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1030 Localização: Cianorte-PR
|
Enviada: Qui Out 01, 2015 2:25 pm Assunto: |
|
|
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 |
|
 |
jefmachia Novato

Registrado: Quinta-Feira, 24 de Outubro de 2013 Mensagens: 93
|
Enviada: Sex Out 02, 2015 11:52 am Assunto: |
|
|
| 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 |
|
 |
|