Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Cookies per HTTPS auslesen (https://www.delphipraxis.net/217021-cookies-per-https-auslesen.html)

Dumpfbacke 9. Apr 2025 12:47

Cookies per HTTPS auslesen
 
Hallo an die Experten.
ich möchte genre die Cookies eine Seite per HTTPS auslesen und weiter verarbeiten. Kann mir hier jemadn etwas Code zur Verfüung stellen?

Danke Tanja

shebang 9. Apr 2025 13:31

AW: Cookies per HTTPS auslesen
 
Das ist die Art von Frage, welche die Chatbots inzwischen ziemlich gut beantworten können. Hier ein leicht bearbeitetes und funktionierendes Ergebnis:
Delphi-Quellcode:
program ProjectX;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  IdHTTP, IdSSL, IdSSLOpenSSL, SysUtils, Classes;

var
  URL : string;
  IdHTTP: TIdHTTP;
  IdSSL: TIdSSLIOHandlerSocketOpenSSL;
  Cookies: TStringList;

begin
  try
    URL := 'https://www.delphipraxis.net';

    IdHTTP := TIdHTTP.Create(nil);
    IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    Cookies := TStringList.Create;
    try
      IdHTTP.IOHandler := IdSSL;
      IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';

      IdSSL.SSLOptions.Method := sslvTLSv1_2;

      // Setze die URL, von der du die Cookies abrufen möchtest
      IdHTTP.Get(URL);

      // Cookies aus dem Header auslesen
      Cookies.Text := IdHTTP.Response.RawHeaders.Values['Set-Cookie'];

      // Hier kannst du die Cookies weiterverarbeiten
      Writeln('Cookies:');
      Writeln(Cookies.Text);
    finally
      Cookies.Free;
      IdSSL.Free;
      IdHTTP.Free;
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  ReadLn;
end.
Code:
Cookies:
dp2010lastvisit=1744201874; expires=Thu, 09-Apr-2026 12:31:14 GMT; Max-Age=31536000; path=/; secure

Dumpfbacke 9. Apr 2025 14:55

AW: Cookies per HTTPS auslesen
 
Hallo shebang,
ich habe da leider noch mal zwei Frage dazu.

1.) Welchen Chatbot hast du denn hierzu verwendet ?
2.) Ich bekomme hier eine E/A-Fehler 105 -> CouldNotLoadSSLLibray mit der Meldung SSL.-Bibiothek konnt nicht geladen werden. Die beiden hierzu benötigten DLls -> libeay32.dll und ssleay32.dll habe ich aus C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\subversion in das Verzeichnis der Exe kopiert. Hier seint noch was falsch zu sein nur was ?

Eventuell ist es ja wichtig das ich Delphi 11 Update 1 benutze.

Danke schon einmal für Deine Hilfe hier.
Tanja

shebang 9. Apr 2025 15:07

AW: Cookies per HTTPS auslesen
 
Zitat:

Zitat von Dumpfbacke (Beitrag 1547955)
1.) Welchen Chatbot hast du denn hierzu verwendet ?

In diesem Fall war das GPT-4o mini von hier.
Zitat:

Zitat von Dumpfbacke (Beitrag 1547955)
2.) Ich bekomme hier eine E/A-Fehler 105 -> CouldNotLoadSSLLibray mit der Meldung SSL.-Bibiothek konnt nicht geladen werden.

Indy benötigt eine spezielle SSL-Version, mit dieser funktioniert es.

Dumpfbacke 10. Apr 2025 06:34

AW: Cookies per HTTPS auslesen
 
Leider funktioniert der Code hier nicht richtig. Es sind hier drei Cookies vorhanden und bei Dir kommt nur der erste raus. Des weiteren haben ich hier auch bemerkt, das zwei her https und eine per HTTP kommen. Hast du noch einen Tipp wie ich an alle hier rankommen kann ?

Ich habe mal als Beispiel die Seite https://www.telekom.de/start genommen da sind sehr viele Cookies vorhanden

Danke Tanja

shebang 10. Apr 2025 08:59

AW: Cookies per HTTPS auslesen
 
Mit der Zeile
Delphi-Quellcode:
IdHTTP.Response.RawHeaders.Extract('Set-Cookie', Cookies);
bekomme ich alle 3 Cookies der Delphipraxis. Allerdings sind es bei der Telekom auch nur die ersten 3. Möglicherweise werden die anderen per Javascript erzeugt, dann bräuchte man einen Browser.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz