Entwickler-Ecke
Internet / Netzwerk - Automatisch Bilder runterladen
dm - So 06.04.03 14:28
Titel: Automatisch Bilder runterladen
Hallo,
ich schreib grad an nem eigenen kleinen Browser, der die möglichkeit bietet, alle Bilder die auf dem angewählten server hinterlegt sind automatisch runterzuladen.
Jemand ne ahnung wie das geht?
Gruß DM
BungeeBug - So 06.04.03 16:15
Hi,
ich denk da kannst du nur die ganze Seite phrasen und dann die Bilder nehmen und saugen :)
MfG BungeeBug
dm - So 06.04.03 16:26
Titel: und wie ? :)
Für gaaanz doofe : wie geht n das?
kannst du vielleicht kurz n beispiel-quellcode posten?
Wäre nett
gruß DM
BungeeBug - So 06.04.03 17:19
sorry kann ich nicht ... dann wärs schon erledigt :) ausserdem hab ich im mom nicht die zeit und die lust das zu probiern .. aber frag mal nen paar andere hier
MfG BungeeBug
mars - So 06.04.03 18:56
Einen Beispielcode habe ich zwar nicht, aber ich kann dir BungeeBugs Vorschlag ein ganz wenig ausführlicher erklären:
Du lädst dir also die betreffende Seite runter und suchst im Source davon nach einem Image-Tag. Dieser könnte beispielsweise folgendermassen aussehen: <img src="images/smiles/icon_biggrin.gif" border="0" alt="Very Happy" title="Very Happy" />
Was du also brauchst, ist die Adresse (images/smiles/icon_biggrin.gif). Du suchst also nach dem nächsten Anführungszeichen und kopierst den String bis zum übernächsten Anführungszeichen. Damit hast du die Adresse und kannst dich daran machen, das Bild runterzuladen.
Inwiefern das bei durchschnittlichen Websites klappt, weiss ich nicht. Da gibts sicher Leute mit mehr Erfahrung. Vielleicht gibt es auch eine viel einfachere Variante als die von BungeeBug?
matze - Mo 07.04.03 18:59
http://www.jazarsoft.com/products/9.php
da gibts ne kompo, die einen HTML quelltext auf alles mögliche durchparsen kann.
die liefert die dir Bild URLS zurück. die lädst du dann einfach mal runter
Benni42 - Mo 14.04.03 23:58
Servus!
Ich hab einen Freeware-Browser geschrieben (
http://www.dxbrowser.de); daraus mal ein Code-Schnipsel, der genau das macht, was Du willst.
Hier mußt Du nix parsen, denn über das Document bekommst Du eine Liste aller Images inkl. URL. :)
Der Typ TEmbeddedWB gibts bei
http://www.euromind.com/iedelphi
(DIE Freeware-Komponente für Browser, zehnmal besser als TWebBrowser)
Der Code, wie er hier ist, behandelt auch Seiten mit Frames! :D
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| procedure TMainForm.GetAllBrowserPicsActionExecute(Sender: TObject);
procedure SaveAllPics(PathToImages: String; Document: IDispatch); var I, Count: Integer; S, S2: String; begin Try If Assigned(Document) Then Begin Count := Variant(Document).Images.Length - 1; For I := 0 To Count Do Begin S := Variant(Document).Images.Item(I).Src; S2 := PathToImages + '\' + Variant(Document).Images.Item(I).nameProp; URLDownloadToFile(Nil, PChar(S), PChar(S2), 0, Nil); Application.ProcessMessages; End; End; Except End; end;
var I, Count: Integer; E: TEmbeddedWB; PathToImages: String; F: TInfoForm; Web: IWebBrowser2; begin Try E := BList.GetActive; // liefert die aktuelle Browser-Instanz zurück, also bei Dir z.B. WebBrowser1 If (E = Nil) Then Exit; If (E.OleObject.Document.Images.Length - 1 > 0) Or (E.FrameCount > 0) Then Begin PathToImages := BrowseDialog('Wähle den Zielordner für die Browserbilder:', BIF_NEWDIALOGSTYLE); If (Trim(PathToImages) = '') Then Exit; If (Not DirectoryExists(PathToImages)) Then Begin MessageDlg('Das Verzeichnis ''' + PathToImages + ''' existiert nicht!', mtError, [mbOK], 0); Exit; End; Screen.Cursor := crHourglass; Try If (E.FrameCount > 0) Then Begin Count := E.FrameCount - 1; For I := 0 To Count Do Begin Web := E.GetFrame(I); If (Web <> Nil) Then SaveAllPics(PathToImages, Web.Document); End Else SaveAllPics(PathToImages, E.OleObject.Document); Finally Screen.Cursor := crDefault; End; End Else MessageDlg('So wie''s ausschaut, enthält diese Seite keine Bilder!', mtInformation, [mbOK], 0); Except On E: Exception Do ShowMessage('Exception - TMainForm.GetAllBrowserPicsActionExecute: ' + E.Message); End; end; |
Falls Du damit Probleme hast, ich bin für Fragen offen. :D
focus - Di 15.04.03 09:31
JEDI hat überignes auch einen netten parser in ihrem soriment ;-)
gruss
michael
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!