AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi HTML-Datei nach Bildern oder IMG-Tags parsen
Thema durchsuchen
Ansicht
Themen-Optionen

HTML-Datei nach Bildern oder IMG-Tags parsen

Offene Frage von "Windwalker"
Ein Thema von Windwalker · begonnen am 5. Jun 2009 · letzter Beitrag vom 5. Jun 2009
Antwort Antwort
Windwalker

Registriert seit: 9. Mär 2009
72 Beiträge
 
#1

HTML-Datei nach Bildern oder IMG-Tags parsen

  Alt 5. Jun 2009, 11:03
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:
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;
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?

Danke!
  Mit Zitat antworten Zitat
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#2

Re: HTML-Datei nach Bildern oder IMG-Tags parsen

  Alt 5. Jun 2009, 11:29
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!
  Mit Zitat antworten Zitat
Grolle

Registriert seit: 5. Nov 2004
Ort: Coesfeld
1.268 Beiträge
 
Delphi 2010 Professional
 
#3

Re: HTML-Datei nach Bildern oder IMG-Tags parsen

  Alt 5. Jun 2009, 11:30
Hallo,

kannst du die Datei nicht einfach nach dem IMG-Tag parsen (Pos, Posex, Copy)?

Viele Grüße ....

// Edit da war wohl jemand schnella

  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: HTML-Datei nach Bildern oder IMG-Tags parsen

  Alt 5. Jun 2009, 11:38
Zitat von SimStar001:
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!
Oder auch nicht wenn es:

- 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).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Windwalker

Registriert seit: 9. Mär 2009
72 Beiträge
 
#5

Re: HTML-Datei nach Bildern oder IMG-Tags parsen

  Alt 5. Jun 2009, 11:43
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.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

Re: HTML-Datei nach Bildern oder IMG-Tags parsen

  Alt 5. Jun 2009, 11:57
Hallo,

guck doch mal hier, da hat noch jemand momentan genau das gleiche Problem: Wie bekomme ich die Bilder aus dem HTML oderwie benutze ich regular expressions?
  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 03:17 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