AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Startseite einer Website mit Synapse herunterladen
Thema durchsuchen
Ansicht
Themen-Optionen

Startseite einer Website mit Synapse herunterladen

Ein Thema von MisterSonic · begonnen am 30. Jul 2017 · letzter Beitrag vom 31. Jul 2017
Antwort Antwort
MisterSonic

Registriert seit: 4. Jan 2004
Ort: Sachsen-Anhalt
40 Beiträge
 
Delphi 7 Enterprise
 
#1

Startseite einer Website mit Synapse herunterladen

  Alt 30. Jul 2017, 21:00
Hallo,

also ich hab in der Vergangenheit hin und wieder kleine Tools für meinen Gebrauch unter Windows in Delphi realisiert. Da ich mich nun mehr & mehr aus verschiedensten Gründen zu Linux hingezogen fühle bin ich auf Lazarus gestoßen. Eine tolle Sache & auch noch Free, besser geht es nicht.

Nun zum eigentlichen, ich habe eine Liste von Urls die ich nach und nach abarbeiten und die jeweiligen Startseiten (index.html, index.php, etc.) lokal als Textdatei speichern möchte. Ich hab mich nun schon mehrmals mit Google über dieses Thema unterhalten, dabei stieß ich auch auf Threads in diesem Forum, der förderte mir die Synapse Units zu tage ... das funktioniert allerdings nur teilweise ...

Hier mal der Code:

Code:
procedure DownloadUrl(Url: String; Fn : String);
var
  t:TStringList;
  i:longint;
begin
  with THTTPSend.Create do
    try
      Log('Navigiere zu '+Url);
      HTTPMethod('GET',Url);
 
 
      t := TStringList.Create;
      t.LoadFromStream(Document);
      t.savetofile('Test.txt');
 
      If T.Count > 0 then
       Begin
        Log ('Lese Quelltext von "'+Url+'" ein.');
        T.SaveToFile(Fn);
       end else Log ('Adresse "'+url+'" nicht gefunden.');
    finally
      t.Free;
    end;
 Log('Bereit.');
end;
 
...
 
procedure TMain.Button5Click(Sender: TObject);
var i : integer;
begin
 For I := 0 to Memo1.Lines.Count-1 do
 Begin
  DownloadUrl(Memo1.Lines[i],inttostr(I)+'.txt');
 End;
end;
In Memo1 sind folgende Zeilen enthalten:

http://www.klebe-portal.de
http://www.maler-ehrt-halle.de

Mit der ersten Url funktioniert es, mit der zweiten nicht ....

In einem anderem Forum in dem allerdings scheinbar nicht so viel los ist, habe ich den Lösungsansatz erhalten, dass es wohl mit dem Redirect zu tun haben könnte (ist wohl nicht ganz abgwegig), leider muss ich zugeben das ich keine Ahnung habe wie ich das abändern kann. Vielleicht kann mir ja hier jemand helfen?

Vorab vielen Dank, Patrick.
Niveau ist keine Cremè.
  Mit Zitat antworten Zitat
MisterSonic

Registriert seit: 4. Jan 2004
Ort: Sachsen-Anhalt
40 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Startseite einer Website mit Synapse herunterladen

  Alt 31. Jul 2017, 07:05
Zwischenzeitlich hab ich in dem anderen Forum eine Antwort erhalten, die für meine Bedürfnisse ausreichend ist. Hier geht man zwar von der Synapse-Unit weg und nutzt die mit Lazarus ausgelieferte "fphttpclient", doch am Ende ist ja bekanntlich das Ziel relevant und nicht der Weg. Hier noch der entsprechende Code ...

Code:

uses
  fphttpclient;

function DownloadHTTP(URL: String; AStream: TStream; out AErrMsg: String): Boolean;
begin
  AErrMsg := '';
  with TFPHTTPClient.Create(nil) do
    try
      AllowRedirect := true;
      try
        Get(URL, AStream);
        Result := (ResponseStatusCode = 200);
        if not Result then
          AErrMsg := ResponseStatusText;
      except
        Result := false;
        AErrMsg := 'Fehler, z.B. URL existiert nicht.';
      end;
    finally
      Free;
    end;
end

procedure Log(AMsg: String);
begin
  Form1.Memo2.Lines.Add(AMsg);
end;
 
procedure DownloadURL(URL: String; FN: String);
var
  stream: TMemoryStream;
  errmsg: String;
  t:TStringList;
  i:longint;
begin
  stream := TMemoryStream.Create;
  try
    Log('Lese Quelltext von "' + URL + '" ein:');
    if DownloadHTTP(URL, stream, errmsg) then
    begin
      stream.SaveToFile(FN);
      Log('--> OK (' + IntToStr(stream.Size) + ' Bytes gelesen)');
    end else
      Log('--> Fehler: ' + errmsg);
  finally
    stream.Free;
  end;
end;
An der Stelle einen großen Dank an den User aus dem anderen Forum der mir bei dem Problem geholfen hat. Und natürlich auch danke an jeden der sich die Zeit genommen hat sich mein Problem durchzulesen.
Niveau ist keine Cremè.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz