Ver Mensaje Individual
  #1  
Antiguo 30-07-2015
(MAJ) (MAJ) is offline
Miembro
 
Registrado: abr 2007
Posts: 71
Reputación: 18
(MAJ) Va por buen camino
Thumbs up Extraer una imagen tipo captcha de una web

despues de ver en varias paginas el problema de querer extraes una imagen tipo captcha(imagen que se modifica cada vez que es cargada), aqui les traigo una pequeña solucion de como hacerlo.

Código Delphi [-]
procedure tform1.capturaImg(const num_img:integer; disp:IDispatch; contenedor:TImage);
var
  doc:ihtmldocument2;
  image: ihtmlimgelement;
  render:ihtmlelementrender;
  coleccion:ihtmlelementcollection;
begin
  doc:= disp as ihtmldocument2;
  coleccion:= doc.images;
  image:= coleccion.item(num_img,0) as ihtmlimgelement;
  contenedor.Height:= image.height;
  contenedor.Width:= image.width;
  render := image as ihtmlelementrender;
  render.DrawToDC(contenedor.Canvas.Handle);
  contenedor.Refresh;
end;

Este procedimiento lo que hace es tomar la imagen de la pagina y enviarla a un contenendor timage, por medio de tres parametros:
Primero: Numero de indice que corresponde a la imagen(primero hay que identificar el indice que corresponde a la imagen ya que carga cada imagen de la pagina y la indexa, desde ahi se selecciona la imagen correspondiente).
Segundo: IDispatcher del navegador (yo utilizo como parametro webbrowser1.document).
Tercero: El contenedor donde se va a almacenar la imagen.

Espero que les sea de utilidad

P/d: Como veran no es la forma mas elegante de implementarlo, ya que se podria buscar por getelementbyid o class, pero en mi caso particular no tiene ningun tipo de identificacion, asi que por eso tengo que indexarla de esta manera. La cuestion es dejar un metodo de como hacerlo y cada uno lo adapta a sus necesidades
Responder Con Cita