Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   TWebBrowser neue Seite aufrufen während FOR Schleife (https://www.delphipraxis.net/204876-twebbrowser-neue-seite-aufrufen-waehrend-schleife.html)

bumbum94 9. Jul 2020 09:03

Delphi-Version: 10.3 Rio

TWebBrowser neue Seite aufrufen während FOR Schleife
 
Guten Morgen und Hallo,

ich Sitz hier an einem kleinen Programm das mir Videolinks automatisch aus htmlQuellCode kopieren soll.

Ein Link pro Seite
Aufbau der URL https://www..../videolink-folge-x/ (x steht für die Nummer der folge)
ich gebe die anzahl der Folgen an

Es wird eine FOR schleife ausgeführt i=1 to anzahl der Folgen
begin
Um den videolink zu erhalten öffnen ich mit TWebBrowser die Seite und hohle mir den HTML Quell Text mit WebBrowser1.OleObject.Document.Body.InnerHtml
diesen Durchforste ich dann nach dem Link kopiere mir den und will auf die nächste Seite navigieren (https://www..../videolink-folge-1/ --> https://www..../videolink-folge-2/)
end

und genau da ist mein Problem.
wie mache ich das das die schleife erst weitergeht wenn er die neue Seite geladen hat
er führt zwar das WebBrowser1.Navigate(url) allerdings lädt er die neue Seite nicht sondern macht einfach mit der alten Seite weiter.

Delphi-Quellcode:
if cbyAnisenpai.Checked then
begin
for I := 1 to StrToInt(Edit2.Text) do
begin
  begin
    slHtml := TStringList.Create;
    try
      slHtml.Add(WebBrowser1.OleObject.Document.Body.InnerHtml);
      pos1:= Pos('https://....sx/',slHtml.Text);
        if pos1 > 0 then
        begin
          pos2:= Pos('"',slHtml.Text,pos1);
          S := Copy(slHtml.Text,pos1,(pos2-pos1));
          WriteLog(s);
        end;

    finally
    slHtml.Free;
    s := WebBrowser1.LocationURL;
    pos1:= Pos('folge',s)+5;
    S := Copy(s,0,pos1 )+IntToStr(i+1)+'-ger-sub/';
    navigate(s);

    end;
  end;
end;

Bernhard Geyer 9. Jul 2020 09:09

AW: TWebBrowser neue Seite aufrufen während FOR Schleife
 
Du musst den Quellcode komplett umbauen.
Du bekommst vom Browsercontrol ein Event, welches mitteilt wenn eine Seite geladen ist.
Wenn diese kommt, dann könntest du erst weitermachen mit deiner "Schleife".

bumbum94 9. Jul 2020 09:20

AW: TWebBrowser neue Seite aufrufen während FOR Schleife
 
Welches Event meinst du ? ich verwwende onDocumentComplete aber das wird in dem fall nicht aufgerufen


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 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