![]() |
idhttp und links filtern
hi leutz kann man diese procedure von marabu mit idhttp benutzen?
wenn ja wie? oder habt ihr ne alternative?^^
Delphi-Quellcode:
errormessage:
procedure ExtractLinks(doc: IHTMLDocument2; s: TStrings);
var ec: IHTMLElementCollection; e: IHTMLElement; i: integer; url: Variant; begin ec := doc.links; for i := 0 to Pred(ec.length) do begin e := ec.item(i, 0) as IHTMLElement; url := VarToStr(e.getAttribute('href', 0)); if url <> '' then s.Add(url); end; end; procedure TForm1.Button5Click(Sender: TObject); begin ExtractLinks(idhttp1, memo2) end; Zitat:
|
Re: idhttp und links filtern
Hallo,
nun, idhttp liefert auch keinen Typ von IHTMLDocument2, nur String oder Stream. Soweit ich das weiß wird IHTMLDocument2 von TWebbrowser bereitgestellt.
Delphi-Quellcode:
Wobei webbrowser eine Instanz von TWebbrowser ist.
ExtractLinks(webbrowser.document as IHTMLDocument2, memo2.lines)
Grüße Klaus |
Re: idhttp und links filtern
ehm joar dass der twebbrowser das hat bzw embeddedwb den ich bisher benutzt habe weiss ich nur ich will mit indy weitermachen da der ganze optische schniggschnagg unnoetig ist aber leider finde ich nix was auf indy passt^^
da o0o |
Re: idhttp und links filtern
|
Re: idhttp und links filtern
oh thx^^
aber irgendwas mach ich wieder falsch 0_o
Delphi-Quellcode:
btw doc: IHTMLDOCUMENT2; wird nicht verwendet...hat jemand ne ahnung wie ich das hinbiege?
procedure ExtractLinks(doc: IHTMLDocument2; s: TStrings; SearchString: String);
var ec: IHTMLElementCollection; e: IHTMLElement; i: integer; url: Variant; begin ec := doc.links; for i := 0 to Pred(ec.length) do begin e := ec.item(i, 0) as IHTMLElement; url := VarToStr(e.getAttribute(SearchString, 0)); if url <> '' then s.Add(url); end; end; function GetDocument(const markup: WideString): IDispatch; var doc: OleVariant; begin Result := CoHtmlDocument.Create; doc := Result; doc.Open; doc.Write(markup); doc.Close; end; procedure TForm1.Button5Click(Sender: TObject); var docd: IDispatch; doc: IHTMLDOCUMENT2; url: String; begin url := 'http://www.meineurl.de'; docd := GetDocument(IdHttp1.Get(url)); end; thx fuer die hilfe leutz:) da o0o |
Re: idhttp und links filtern
Du machst es schon fast richtig:
Delphi-Quellcode:
Freundliche Grüße
procedure TForm1.Button5Click(Sender: TObject);
var doc: IHTMLDOCUMENT2; url: String; begin url := 'http://www.meineurl.de'; doc := GetDocument(IdHttp1.Get(url)) as IHTMLDocument2; ExtractLinks(doc, ListBox.Items, SearchString); end; |
Re: idhttp und links filtern
ahoi marabu thx, jetzt kann ich die anwendung endlich erstellen^^
Delphi-Quellcode:
nur finden tut es irgendwie nix bzw die listbox bleibt leer 0_o
procedure TForm1.Button5Click(Sender: TObject);
var doc: IHTMLDOCUMENT2; url: String; begin url := 'http://www.google.de'; doc := GetDocument(IdHttp1.Get(url)) as IHTMLDocument2; ExtractLinks(doc, ListBox1.Items, 'google'); end; da o0o |
Re: idhttp und links filtern
Moin,
wenn ich mir das genau anschaue, dann sehe ich, dass du in Beitrag #1 die Originalversion der Prozedur ExtractLinks() angibst. In Beitrag #5 zeigst du eine modifizierte Version, die du scheinbar auch verwendest. Über den dritten Parameter selektierst du nur solche Links, die ein entsprechend benanntes Attribut aufweisen. Ich behaupte jetzt mal kühn, dass es in deinem Testdokument keine Links mit passendem Namen gibt. Freundliche Grüße |
Re: idhttp und links filtern
lol marabu du bist der beste(...bist nicht umsonst in meiner sig;))
hast recht es hing an der modifizierten version ich hab einfach verschiedene codeschnipsel ausprobiert die ich hier fand und nicht gemerkt dass extractlinks modifiziert war :wall: naja alles klappt wunderbar und gut an der stelle hier danke an alle die hier geholfen haben:) euer o0o :dancer: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 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