![]() |
HTML-Datei nach Bildern oder IMG-Tags parsen
Hallo!
Ich möchte eine über IdHttp heruntergeladene HTML-Datei nach Bildern, also Image-Tags, parsen und jedes enthaltene Bild ebenfalls herunterladen, um die Website danach offline anzeigen zu können. (Damit sie bei späteren Programm-Starts ohne Internet-Verbindung offline angezeigt werden kann) Ich habe Beispiele gefunden, wo dies mittels des WebBrowser-Objektes gemacht wird:
Delphi-Quellcode:
Muss ich hier vorher zwangsläufig die Website über Navigate() anzeigen, oder ist es möglich, das auch unsichtbar im Hintergrund zu machen, um die zuerst alle Bilder herunterzuladen und danach alles offline anzuzeigen?
var i,count : Integer;
begin with WebBrowser1 do begin count := OleObject.document.images.Length; for i := 0 to Count-1 do Images.Add(OleObject.document.images.Item(i).Src); end; Danke! |
Re: HTML-Datei nach Bildern oder IMG-Tags parsen
Du lädst ja die Datei herunter. Lade diese in einen Stream und durchsuche diesen dann nach z.b. diesen Tags: <img /> und lies den href dazwischen aus!
Und dann haste es! |
Re: HTML-Datei nach Bildern oder IMG-Tags parsen
Hallo,
kannst du die Datei nicht einfach nach dem IMG-Tag parsen (Pos, Posex, Copy)? Viele Grüße .... // Edit da war wohl jemand schnella :mrgreen: |
Re: HTML-Datei nach Bildern oder IMG-Tags parsen
Zitat:
- Sich um eine MS-Html-Datei handelt die "komische" sachen macht - Die Image-Tags dynamisch per JS zusammengestellt werden - Die HTML-Datei erst mittels XSL aus einer XML-Datei erstellt wird. Sinnvoll ist auf jedenfall über eine HTML-parser zu gehen! Mann kann auch den WebBrowser auf einen unsichtbaren Formular einsetzen. Das Formular muß nur ein gültiges Fenster-Handle haben (mittels HandleNeeded-Aufruf zu lösen). |
Re: HTML-Datei nach Bildern oder IMG-Tags parsen
Ja, das Ganze mit PosEx() und Copy() zu parsen habe ich gerade begonnen zu implementieren.
Ich suche mit PosEx() jeweils das nächste "[img] in der selben Zeile mehr gibt, lese ich die nächste Zeile ein und kopiere mir den Rest (nach dem [/img] AssignFile(datei, datei_name); reset(datei); while (not eof(datei)) do begin Readln(datei, zeile); offset := 1; p_img := PosEx('<img', LowerCase(zeile), offset); if p_img>0 then begin p_src := PosEx('src=', LowerCase(zeile), p_img); if p_src=0 then begin zeile_vor := Copy(zeile, p_img, Length(zeile)); ReadLn(datei,zeile); p_src := PosEx('src=', LowerCase(zeile), 1); end; p_urlstart := p_src+5; // Zum " vor der URL springen p_urlend := PosEx('"', LowerCase(zeile), p_urlstart+1); // " nach der URL suchen end; [/code] Geht das mit einem Stream einfacher? Wenn ja, würde ich mich über ein kleines Beispiel freuen, da ich mit Streams bisher nicht gearbeitet habe. |
Re: HTML-Datei nach Bildern oder IMG-Tags parsen
Hallo,
guck doch mal hier, da hat noch jemand momentan genau das gleiche Problem: Wie bekomme ich die Bilder aus dem HTML oder ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 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