Sådan lige hurtig og kort og uden noget form for fejl check (Try-Except beklager hrc ;-) ) og kun testet med en enkelt side (
www.fiberbredbaand.dk), men det kan vel give dig nogle ideer.
Jeg bruger Delphi 7 og Indy´s IdHTTP komponent, og det virker fint her.
-----------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdHTTP, StrUtils;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure HentPdfer(Side, Mappe : string);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.HentPdfer(Side, Mappe : string);
var
IdHTTP : TIdHTTP;
MS :TMemoryStream;
i,c : integer;
OrgSide,Link,Filnavn : string;
procedure HentPDF;
begin
MS.Clear;
Filnavn:='
http://'+IdHTTP.Host+Link; IdHTTP.Get(Filnavn,MS);
Filnavn:=Copy(Link,LastDelimiter('/',Link)+1,MaxInt);
MS.SaveToFile(Mappe+Filnavn);
end;
begin
IdHTTP:=TIdHTTP.Create(Self);
MS:=TMemoryStream.Create;
Side:=IdHTTP.Get(Side);
OrgSide:=Side;
Side:=AnsiLowerCase(Side);
c:=PosEx('href',Side);
while c>0 do
begin
i:=PosEx('"',Side,c+6);
Link:=Copy(OrgSide,c+6,i-c-6);
if Copy(Link,Length(Link)-3,4)='.pdf' then
HentPDF;
c:=PosEx('href',Side,i);
end;
IdHTTP.Free;
MS.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
HentPdfer('
http://www.fiberbredbaand.dk/portal/page/portal/Energimidt/forside/support/vejledninger?page=265','c:\hk\pdf\');
end;
end.