Hallöle ihr da,
hab mal seit langem wieder nen kleines anlegen wo ich echt nicht weiter komme.....
Habe ne prozedure welches Urls ausliest via IdHTTP
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| procedure ExtractLinks(const url: String; const strings: TStrings) ; var iDoc : IHTMLDocument2; strHTML : string; v : Variant; x : integer; links : OleVariant; docURL : string; URI : TidURI; aHref : string; idHTTP : TidHTTP; begin strings.Clear; URI := TidURI.Create(url) ; try docURL := 'http://' + URI.Host; if URI.Path <> '/' then docURL := docURL + URI.Path; finally URI.Free; end; iDoc := CreateComObject(Class_HTMLDOcument) as IHTMLDocument2; try iDoc.designMode := 'on'; while iDoc.readyState <> 'complete' do Application.ProcessMessages; v := VarArrayCreate([0,0],VarVariant) ; idHTTP := TidHTTP.Create(nil) ; try strHTML := idHTTP.Get(url) ; finally idHTTP.Free; end; v[0]:= strHTML; iDoc.write(PSafeArray(System.TVarData(v).VArray)) ; iDoc.designMode := 'off'; while iDoc.readyState<>'complete' do Application.ProcessMessages; links := iDoc.all.tags('A') ; if links.Length > 0 then begin for x := 0 to -1 + links.Length do begin aHref := links.Item(x).href; if (aHref[1] = '/') then aHref := docURL + aHref else if Pos('about:', aHref) = 1 then aHref := docURL + Copy(aHref, 7, Length(aHref)) ; strings.Add(aHref) ; end; end; finally iDoc := nil; end; end;
procedure TForm1.Button5Click(Sender: TObject); begin ExtractLinks(edit3.Text, Memo3.Lines); end; |
Soweit wie das hier steht funktioniert das auch allerdings nicht nach meinen wünschen da es immer nur die angegebene Seite mir ausgibt.
Ich habe in meinem Programm welches via TEmbeddedWB automatisch Daten verarbeitet schon einiges umgesetzt und möchte dies gern erweitern mit dem ausgeben von gefundenen Links im Quelltext. Das bedeutet, die Prozedure soll automatisch die Quelltextdaten verarbeiten die im TEmbeddedWB angezeigt und ausgegeben werden.
Wie kann ich dieses Script umstellen das es nicht via IdHTTP geht sondern die Daten von meinem TEmbeddedWB verarbeitet und ausgibt?
Über Hilfe würd ich mich freuen.....
LG Mario