
Para recuperar los links de una página html es necesario abrir una instancia de Internet Explorer y utilizar las funciones OLE como muestra el siguiente ejemplo:
procedure ListarLinks(List: TStrings; IEApp: OLEVariant; aURL:string);
var
IEApp: OLEVariant;
nbLinks,i:Integer;
begin
//Si el objeto OLE no ha sido creado
if(VarIsEmpty(IEApp))then
begin
//crear el objeto
IEApp := CreateOleObject('InternetExplorer.Application');
//hacerlo visible
IEApp.Visible := true;
//Abrir la página especificada
IEApp.Navigate(aURL);
end;
//Esperar a que la página sea completamente cargada
// READYSTATE_COMPLETE = 4
while Cardinal(IEApp.readyState) <> 4 do sleep(1000);
//Recuperar el nombre de los links
nblinks := Cardinal(IEApp.Document.links.length);
//Volcar los links en un tString
List.Add(Format('Nombre de los links = %d',[nblinks]));
for i := 0 to nblinks - 1 do
Self.MemoLog.Lines.Add(string(IEApp.Document.links.item(i).href));
end;
Para simular un clic hacer lo siguiente:
procedure ClicSobreLink(LinkIndex:Integer);
begin
IEApp.Document.links.item(LinkIndex).click;
end;
No hay comentarios:
Publicar un comentario