Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Seiten durchsuchen (https://www.delphipraxis.net/167528-seiten-durchsuchen.html)

mb1996 3. Apr 2012 19:32

Seiten durchsuchen
 
Hallo Leute,
ich möchte ein Programm programmieren, das eine HTML-Datei einer Website runterlädt und in der Datei nach Links suchen. Das Programm soll alle Links rausschreiben.

Wie bekomme ich das realiziert?

Perlsau 3. Apr 2012 19:40

AW: Seiten durchsuchen
 
Zitat:

Zitat von mb1996 (Beitrag 1160022)
Hallo Leute, ich möchte ein Programm programmieren, das eine HTML-Datei einer Website runterlädt und in der Datei nach Links suchen. Das Programm soll alle Links rausschreiben. Wie bekomme ich das realiziert?

Indem du eine HTML-Datei herunterlädst und darin nach Links suchst. Mit anderen Worten:

Welche Art Antwort erwartest du jetzt? Gibt es bereits irgendwelche Ansätze, die du programmiert hast? Welchen Schwierigkeiten bist du dabei begegnet?

So könnte man dir helfen. Aber eine komplette Anwendung schreibt dir hier niemand.

Bummi 3. Apr 2012 20:14

AW: Seiten durchsuchen
 
Wenn Du nicht selbst parsen möchtest
Delphi-Quellcode:
implementation
uses mshtml;
{$R *.dfm}
Procedure WebBrowserCreateStringListHREF(const AWebBrowser: TWebBrowser;sl:TStrings) ;
var
  nCount  : Integer;
  elements : IHTMLElementCollection;
  element : IHTMLElement;
  sAnchor : String;
begin

  if Assigned(AWebBrowser.Document) then begin
    elements:= (AWebBrowser.Document as IHTMLDocument2).all;
    for nCount := 0 To Pred(elements.Length) do begin
      element := elements.item(nCount, '') as IHTMLElement;
      if element.tagName = 'A' then begin
         sAnchor := (element as IHTMLAnchorElement).href;
         sl.Add(sAnchor);
      end;
    end;
  end;

end;
procedure TForm2.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('www.google.de');
end;

procedure TForm2.WebBrowser1NavigateComplete2(ASender: TObject; const pDisp: IDispatch; var URL: OleVariant);

begin
   WebBrowserCreateStringListHREF(Webbrowser1,Listbox1.Items);
end;

Luckie 3. Apr 2012 20:35

AW: Seiten durchsuchen
 
Mit Indy runterladen (HTTP.Get) und mit pos/posex nach href suchen und mit Copy rauskopieren.

Sir Rufo 3. Apr 2012 22:07

AW: Seiten durchsuchen
 
Zitat:

Zitat von Luckie (Beitrag 1160037)
Mit Indy runterladen (HTTP.Get) und mit pos/posex nach href suchen und mit Copy rauskopieren.

Ein Hier im Forum suchenXML-Parser macht das Leben einfacher :) (der kann auch HTML Seiten zerlegen ;) )

mb1996 3. Apr 2012 22:20

AW: Seiten durchsuchen
 
Danke Leute,
ihr habt mir SEHR geholfen ;)
Ganz besonders BUMMI :thumb:

Nur eine Sache zu Bummi. Bei mir läuft das mit NavigateComplete nicht. Deswegen habe ich es an einem Button getestet.

Perlsau 3. Apr 2012 22:23

AW: Seiten durchsuchen
 
Zitat:

Zitat von mb1996 (Beitrag 1160057)
Bei mir läuft das mit NavigateComplete nicht. Deswegen habe ich es an einem Button getestet.

Das ist der Nachteil, wenn man fertige Methoden einfach kopiert: Man begreift dabei gewöhnlich nichts.

Sir Rufo 3. Apr 2012 22:28

AW: Seiten durchsuchen
 
Zitat:

Zitat von mb1996 (Beitrag 1160057)
Danke Leute,
ihr habt mir SEHR geholfen ;)
Ganz besonders BUMMI :thumb:

Nur eine Sache zu Bummi. Bei mir läuft das mit NavigateComplete nicht. Deswegen habe ich es an einem Button getestet.

mit ;)

Hast du das Event auch an die TWebbrowser Komponente
Delphi-Quellcode:
Webbrowser1.OnNavigateComplete2
im OI gebunden?

Und um nur die Links zu bekommen ist ein TWebbrowser schon eine Bremse, denn der lädt ja (ist ja auch ein Browser) alle Bilder etc. herunter und rendert diese auch noch.

Mit TIdHTTP wird nur die reine HTML-Datei geladen, wo aber alle Links enthalten sind.

Bummi 3. Apr 2012 22:30

AW: Seiten durchsuchen
 
je nach dem was Du vor hast solltest Du Dir ein passendes Ereignis suchen, ein weiterer Kandidat wäre OnDocumentComplete ... das ist der Nachteil der asynchronen Methoden

mb1996 3. Apr 2012 22:39

AW: Seiten durchsuchen
 
Ich habe das nicht einfach kopiert!!!!
Es funktioniert wirklich nicht (mit dem Ereignis). Da werde ich mir morgen einfach ein anderes suchen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr.
Seite 1 von 2  1 2      

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