![]() |
TIdHTTP, Inhalt einer Seite ermitteln
Hallo #,
eigentlich suche ich eine Möglichkeit, eine Liste downloadbarer Dateien einer Seite zu bekommen. Im Netz steht, dass man sich den Quellcode der Seite holen soll und selber parsen soll. Das wäre auch OK, da ich die ersten 4 Zeichen der Dateien kenne. Das ist übrigens nichts illegales ;) Ich will mir die jeweils aktuellen Kostenträgerdateien der GKV runterziehen und die haben immer das Quartal im Name im stehen, sind also verschieden (manchmal steht hinter dem Quartal noch ein Suffix, manchmal nicht, also nix mit "Dateinamen ausprobieren". Danke Erledigt. .Get(URL): String -> das ist der Inhalt Nützt mir aber nix, is ne ASP-Seite ... ;( Heiko |
AW: TIdHTTP, Inhalt einer Seite ermitteln
So würde es mit dem WebBrowser-Control gehen (ist halt viiiel einfacher als mit Indy + HTML parsen).
WebBrowser-Komponente auf's Formular klatschen und mit .Navigate()-Methode die Seite runterladen/anzeigen. Dann hier erst einmal etwas Code zum auslesen von Links:
Delphi-Quellcode:
Dann braucht man nur noch einen Handler für die Callback-Methode:
type
TOnExtractLink = procedure(const URL:string) of object; procedure ExtractDocumentLinks(const Document: IDispatch; callback:TOnExtractLink); var doc, links, link : OleVariant; i : Integer; begin doc := Document; links := doc.links; for i:=0 to links.Length-1 do begin link := links.item(i); callback(link.HREF); end; end; procedure ExtractWBLinks(WebBrowser: TWebBrowser; callback:TOnExtractLink); begin if not Assigned(WebBrowser.Document) then Exit; ExtractDocumentLinks(WebBrowser.Document, callback); end;
Delphi-Quellcode:
procedure TMainForm.AddLinkToList(const url: string);
var url2 : string; pp : Integer; ignore_anchors : Boolean; begin ignore_anchors := True; // Sollen Anker in der URL unterdrückt werden? if ignore_anchors then begin pp := Pos('#', url); if pp > 0 then url2 := copy(url, 1, pp-1) else url2 := url; end else url2 := url; if LbxLinkList.Items.IndexOf(url2) <> -1 then Exit; LbxLinkList.Items.Add(url2); // URL in Listbox eintragen end; LbxLinkList.Clear; ExtractWBLinks(WebBrowser1, AddLinkToList); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 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