Extraire les liens d'une page web

Contenu du snippet

Ce ptit code extrait les liens d'une source d'une page

Il faut:
une boite de Texte(Edit1)
Un bouton (Button1)
Une liste(ListBox1)

Edit1 contien le chemin du fichier

Source / Exemple :


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    function Mid(Source: string; Start: integer; Length: integer): string;
    function InStr(Start: integer; Source: string; SourceToFind: string): integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//renvoi un parti d'une chaine
function TForm1.Mid(Source: string; Start: integer; Length: integer): string;
begin
Result := copy(Source,Start,Length);
end;
//renvoi la position d'une chaine dans une autre
function TForm1.InStr(Start: integer; Source: string; SourceToFind: string): integer;
begin
Result := pos(SourceToFind,copy(Source,Start,Length(Source) - (Start - 1)));
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Fichier:TextFile;
LaPage,TmpS:string;
Posi:integer;
begin
AssignFile(Fichier,Edit1.Text); //Ouverture du fichier
ReSet(Fichier);
While not EOF(Fichier) do begin
  ReadLn(Fichier,TmpS);
  LaPage := LaPage + TmpS;
end;
Posi:=1;
while Posi<Length(LaPage) do begin //Jusqu'a la fin du fichier
  if LowerCase(Mid(LaPage,Posi,4)) = 'href' then begin //si trouve href
    TmpS := Mid(LaPage,Posi+6,InStr(Posi+6,LaPage,'>')-2); //récupère le lien qui suit
    ListBox1.Items.Add(TmpS); //Ajoute a une listeBox
    Posi := Posi + length(TmpS); //décale posi de ce k'il a ajouté
  end;
  Posi := Posi+1 //ajoute 1 a posi
end;

end;

end.

Conclusion :


sinon voir zip

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.