AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Auslesen von Quelltext nach Scriptlauf mit EdgeBrowser
Thema durchsuchen
Ansicht
Themen-Optionen

Auslesen von Quelltext nach Scriptlauf mit EdgeBrowser

Ein Thema von herik · begonnen am 26. Jun 2024 · letzter Beitrag vom 27. Jun 2024
 
herik

Registriert seit: 17. Okt 2007
Ort: Spitzkunnersdorf / Sachsen
15 Beiträge
 
Delphi 11 Alexandria
 
#1

Auslesen von Quelltext nach Scriptlauf mit EdgeBrowser

  Alt 26. Jun 2024, 06:21
Hallo Gemeinde,

Ich bin dabei Daten von einem Webseite zu holen.
Hierbei bin ich aber auf ein Problem gestoßen, welches ich nicht in den Griff bekomme.

Zu meinem vorgehen.

Ich verwende TEdgeBrowser um mir den Quelltext der betreffenden Webseite nach dem ausführen des JavaScript zu holen.
Den Quelltext Speicher ich im Anschluss in eine Datei.

Delphi-Quellcode:
procedure TForm2.EdgeBrowser1NavigationCompleted(Sender: TCustomEdgeBrowser;
  IsSuccess: Boolean; WebErrorStatus: TOleEnum);
begin
  EdgeBrowser1.ExecuteScript('encodeURI(document.documentElement.outerHTML)');
end;
Delphi-Quellcode:
procedure TForm1.EdgeBrowser1ExecuteScript(Sender: TCustomEdgeBrowser;
  AResult: HRESULT; const AResultObjectAsJson: string);
var
  OutputSL: TStringList;
begin
  if AResultObjectAsJson <> 'nullthen
  begin
    OutputSL := TStringList.Create;
    try
      OutputSL.Text := TNetEncoding.URL.Decode(AResultObjectAsJson).DeQuotedString('"');
      OutputSL.Text := HTMLEntitiesDecode(OutputSL.Text);
      Memo1.Text := OutputSL.Text;


      OutputSL.SaveToFile(ExtractFilePath(ParamStr(0)) + '\Quelltext.txt', TEncoding.UTF8);
      Edgebrowser1.NavigateToString(OutPutSl.Text);
    finally
      OutputSL.Free;
    end;
  end;
end;
Das funktioniert erstmal augenscheinlich. Der Quelltext wird ordentlich in eine Datei geschrieben.



Im nächsten Schritt will ich mit Python und beautifulsoup Werte auslesen. Und genau hier liegt nun mein Problem.
Wenn ich nun mein Python Script über meine gespeicherte Datei laufen lasse, werden keine Werte erkannt.


Bei genauerer Kontrolle des Quelltextes nach dem es durch beautifulsoup geparst wurde, entstehen haufenweise Stellen wo ">" durch "&gt" oder ">" durch "&lt" ersetzt wurden.
Also konnte der Parser den durch den EdgeBrowser ausgegebenen Quelltext nicht richtig parsen.

In der Gespeicherten Datei (Ausgegebener Quelltext durch EdgeBrowser) sind die Zeichen "&gt" und "&lt" nicht zu finden!

Code:
Datei = open("Quelltext.txt", "r" , encoding='utf-8')
So öffne ich die Datei im Python.


Nun weiß ich nicht recht wo ich ansetzen kann um zu meinem Gewünschten Ergebnis zu kommen.

Zur Kontrolle hatte ich noch folgende Zeile im Delphi mit eingefügt.
Edgebrowser1.NavigateToString(OutPutSl.Text); Dies übergibt den Quelltext erneut an den EdgeBrowser und wird dann angezeigt.
Aber auch hier wird nicht alles Richtig angezeigt. Es scheint so, als wenn genau diese Bereiche die Python nicht lesen kann, auch hier fehlen.

Eventuell habt Ihr ja eine Idee wo ich noch nachschauen kann, oder was ich noch anders machen kann.

Wenn Ihr mehr Informationen Braucht, dann bitte fragen. Ich wollte das Thema jetzt hier nicht so überladen.

Vielen Dank schon mal
Erik
  Mit Zitat antworten Zitat
 

 

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 06:24 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 by Thomas Breitkreuz