AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idhttp und links filtern
Thema durchsuchen
Ansicht
Themen-Optionen

idhttp und links filtern

Ein Thema von o0o · begonnen am 14. Jan 2008 · letzter Beitrag vom 15. Jan 2008
Antwort Antwort
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#1

idhttp und links filtern

  Alt 14. Jan 2008, 15:31
hi leutz kann man diese procedure von marabu mit idhttp benutzen?
wenn ja wie? oder habt ihr ne alternative?^^

Delphi-Quellcode:
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;
errormessage:
Zitat:
[DCC Fehler] Unit1.pas(94): E2010 Inkompatible Typen: 'IHTMLDocument2' und 'TIdHTTP'
hab zwar in der suche gekuckt aber iwi nix passendes fuer indy gefunden waere nice wenn jemand dafuer was haette^^
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: idhttp und links filtern

  Alt 14. Jan 2008, 15:34
Hallo,

nun, idhttp liefert auch keinen Typ von IHTMLDocument2,
nur String oder Stream.

Soweit ich das weiß wird IHTMLDocument2 von TWebbrowser bereitgestellt.

ExtractLinks(webbrowser.document as IHTMLDocument2, memo2.lines) Wobei webbrowser eine Instanz von TWebbrowser ist.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: idhttp und links filtern

  Alt 14. Jan 2008, 15:38
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
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: idhttp und links filtern

  Alt 14. Jan 2008, 15:39
Hi,

lies dich mal hier ein: klick

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: idhttp und links filtern

  Alt 14. Jan 2008, 15:54
oh thx^^
aber irgendwas mach ich wieder falsch 0_o

Delphi-Quellcode:
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;
btw doc: IHTMLDOCUMENT2; wird nicht verwendet...hat jemand ne ahnung wie ich das hinbiege?

thx fuer die hilfe leutz

da o0o
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: idhttp und links filtern

  Alt 14. Jan 2008, 16:49
Du machst es schon fast richtig:

Delphi-Quellcode:
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;
Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: idhttp und links filtern

  Alt 15. Jan 2008, 01:55
ahoi marabu thx, jetzt kann ich die anwendung endlich erstellen^^
Delphi-Quellcode:
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;
nur finden tut es irgendwie nix bzw die listbox bleibt leer 0_o


da o0o
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: idhttp und links filtern

  Alt 15. Jan 2008, 07:21
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
  Mit Zitat antworten Zitat
Benutzerbild von o0o
o0o

Registriert seit: 20. Jul 2007
Ort: am...,da wo die sonne nicht scheint!
166 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: idhttp und links filtern

  Alt 15. Jan 2008, 08:16
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

naja alles klappt wunderbar und gut an der stelle hier danke an alle die hier geholfen haben

euer o0o
(_/marabu-fan inside\_)
[-\_______________/-]
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:25 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