Extraire les liens d'une page web

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 650 fois - Téléchargée 1 633 fois

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

Ajouter un commentaire

Commentaires

Filipe35
Messages postés
496
Date d'inscription
vendredi 14 novembre 2003
Statut
Membre
Dernière intervention
23 octobre 2007
-
C'est exactement la source ke je charchais.
Voila un bo 8/10.
Je m'en suis servit pour faire un prog à mon pote
sur prizee ki permet de cliquer le premier sur les fers à cheval.

Ca marche nikel !! Du bo travail !


Filipe
Filipe35
Messages postés
496
Date d'inscription
vendredi 14 novembre 2003
Statut
Membre
Dernière intervention
23 octobre 2007
-
J'ai trouvé plus simple:

var
i : Integer;
begin
for i:=0 to MyWebbrowser.OleObject.Document.Links.Length-1 do
MyMemo.Lines.Add(MyWebbrowser.OleObject.Document.Links.Item(i));
end;


sur:

http://delphi.developpez.com/faq/?page=webrowser

Filipe

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.