AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Picture im Webbrowser downloaden
Thema durchsuchen
Ansicht
Themen-Optionen

Picture im Webbrowser downloaden

Ein Thema von juelin · begonnen am 7. Mär 2017 · letzter Beitrag vom 7. Mär 2017
Antwort Antwort
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
142 Beiträge
 
Delphi XE5 Professional
 
#1

Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 15:34
Hallo zusammen,
ich habe ein Problem. Benutze Delphi XE5.
Ich rufe im Webbrowser eine Seite auf (https://www.lidl.de/de/billiger) und lese den HTML-Code aus.
Dabei werden auch Bilder angezeigt und im HTML-Code steht auch der Filename:

<img data-original="/media/product/0/0/1/9/7/5/6/rotkaeppchen-sekt-trocken-regular--5.jpg" alt="Rotkäppchen Sekt, trocken" class="lazy" /><span class="special">

Wie kann ich nun das Bild downloaden?

Gerne auch ein Beispiel senden.

Danke für die Hilfe.

Gruß Jürgen
Jürgen Linder
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 15:56
Die Bildresource hat die volle URL https://www.lidl.de/media/product/0/...regular--5.jpg

Zum Downloaden verwendet man einen HTTP Client, z.B. die Klasse TIdHTTP aus Indy.

Deren Get Methode liefert die Resource dann, z.B. wie hier beschrieben:

http://stackoverflow.com/questions/1...-url-in-delphi

P.S. um zu testen ob das Get funktioniert, kann man die vie Get erhaltendenen Daten über einen Filestream als lokale Datei speichern, und diese dann öffnen.
Michael Justin

Geändert von mjustin ( 7. Mär 2017 um 16:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.014 Beiträge
 
Delphi 12 Athens
 
#3

AW: Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 16:22
Und dann noch die rechtliche Seite

* erlaubt es Lidl, dass man ihre Seite parst?
* haben die womöglich eine API, welche die gewünschten Infos liefert? (REST, SOAP usw.)
* was wird mit den Bildern bemacht und braucht man dafür z.B. eine Erlaubnis? (Bildrechte)
* ...
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
142 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 17:28
Hallo,
erst mal recht herzlichen Dank für die schnelle Hilfe.
Mit Indy kenne ich mich noch nicht so richtig aus.
Hier mein Code:

var MS: TMemoryStream;
var JPEG: TJPEGImage;

MS:=TMemoryStream.Create;
JPEG:=TJPEGImage.Create;
try
// IdHTTP1.get('https://www.lidl.de'+artbild2,MS);
IdHTTP1.get('https://www.lidl.de/media/product/0/0/1/9/7/5/6/rotkaeppchen-sekt-trocken-regular--5.jpg',MS);
Ms.Seek(0,soFromBeginning);
JPEG.LoadFromStream(MS);
Image1.Picture.Assign(JPEG);
finally
FreeAndNil(JPEG);
FreeAndNil(MS);
end;

Bei dem Befehl: IdHttp1.get bekomme ich folgende Fehlermeldung:
Exception der Klasse EIdIOHandlerPropInvalid mit der Meldung "Wert für IOHandler ist ungültig"

Kannst Du mir da helfen?
Danke und Gruß Jürgen
Jürgen Linder
  Mit Zitat antworten Zitat
pesi

Registriert seit: 29. Aug 2003
Ort: 36217 Ronshausen
117 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 17:51
Hmmm... was spricht denn gegen den Befehl UrlDownloadToFile ??? Der macht doch genau das, eine Datei X aus dem Internet mit Name Y lokal speichern
  Mit Zitat antworten Zitat
juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
142 Beiträge
 
Delphi XE5 Professional
 
#6

AW: Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 18:09
in welcher Komponente ist die Methode URLDownloadToFile ?
Jürgen Linder
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 18:10
in welcher Komponente ist die Methode URLDownloadToFile ?
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#8

AW: Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 18:44
WinApi.UrlMon, //UrlDownloadToFile
Delphi-Quellcode:
---
var ZDF, FNsav : String;
...
ZDF:= PChar(FileName);
FNsav:= PChar(Pfad + FileName);
if UrlDownloadToFile(nil, PChar(ZDF), PChar(FNsav), 0, nil)= S_OK then...
...

Geändert von t.roller ( 7. Mär 2017 um 18:48 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Picture im Webbrowser downloaden

  Alt 7. Mär 2017, 21:27
Bei dem Befehl: IdHttp1.get bekomme ich folgende Fehlermeldung:
Exception der Klasse EIdIOHandlerPropInvalid mit der Meldung "Wert für IOHandler ist ungültig"
Das passiert wenn man eine ältere Indy Version verwendet

Neuere Indy Versionen erzeugen bei einer HTTPS Adresse automatisch den IOHandler mit SSL/TLS Unterstützung *). Es gibt also zwei Lösungen:

a) Indy aktualisieren (es muss nicht in der Komponentenpalette installiert werden, man kann auch die Core/Protocol/System Verzeichnisse in den Projektsuchpfad aufnehmen)
b) eine TIdSSLIOHandlerSocketOpenSSL Komponente hinzufügen und sie dann der Property IdHTTP1.IOHandler zuweisen

Ausserdem müssen die OpenSSL DLLs im Suchpfad liegen.

*) Wie unter http://www.indyproject.org/sockets/b.../20141222.aspx beschrieben, muss die Unit in der der IOHandler enthalten ist explizit in der uses Klausel angegeben werden
Michael Justin
habarisoft.com

Geändert von mjustin ( 7. Mär 2017 um 21:47 Uhr)
  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 19:48 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