Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi HTML Seite auslesen ??? (https://www.delphipraxis.net/53200-html-seite-auslesen.html)

Gigant02 12. Sep 2005 10:38


HTML Seite auslesen ???
 
Moin Moin an alle

also ich habe ein kleines problem

naja wie immer lach

also ich will mein programm einen link zu einer html seite übergeben in der html seite sind weitere links zu bildern

nun will ich gerne das bild auf welches der link verweisst speichern

wie mache ich das ganze ???

lg, Gigant

Gigant02 12. Sep 2005 11:12

Re: HTML Seite auslesen ???
 
ok etwas einfacher

wie kann ich überhaupt ein bild aus den internet speichern ???

alsp per delphi

oder wie komme ich überhaupt an eine html seite an ???

lg, Gigant

marabu 12. Sep 2005 11:17

Re: HTML Seite auslesen ???
 
Hi Gigant,

hier ein paar Anregungen für deine weiteren Forschungen:

Delphi-Quellcode:
const
  imgFolder = 'c:\daten\images';

function UrlToFileName(url: string): string;
var
  i: integer;
begin
  i := Pos('/', url);
  while i > 0 do begin
    Delete(url, 1, i);
    i := Pos('/', url);
  end;
  Result := IncludeTrailingPathDelimiter(imgFolder) + url;
end;

procedure TWebForm.SaveImgToFile(url, fileName: string);
var
  s: TStream;
begin
  s := TFileStream.Create(fileName, fmCreate);
  idHTTP.Get(url, s);
  s.Free;
end;

procedure TWebForm.ImgButtonClick(Sender: TObject);
var
  doc: IHTMLDocument2;
  ec: IHTMLElementCollection;
  img: IHTMLImgElement;
  i: integer;
  vi: OleVariant;
begin
  doc := WebBrowser.Document as IHTMLDocument2;
  ec := doc.images;
  for i := 0 to ec.length - 1 do begin
    vi := i;
    img := ec.item(vi, null) as IHTMLImgElement;
    SaveImgToFile(img.href, UrlToFileName(img.href));
  end;
end;
Grüße vom marabu

Gigant02 12. Sep 2005 11:39

Re: HTML Seite auslesen ???
 
danke für danke code

ich bin schon am rumbasteln

er sacht nur immer in der zeilte

Delphi-Quellcode:
  idHTTP.Get(url, s);
hinter get unbekanter bezeicher

ich habe schon die idhttp komponente auf die form geschoben

lg, Gigant

marabu 12. Sep 2005 11:42

Re: HTML Seite auslesen ???
 
Na sowas - wo doch url in meiner Prozedur der erste Parameter ist:

Delphi-Quellcode:
procedure TWebForm.SaveImgToFile(url, fileName: string);
Hast wohl ein bischen zu heftig gebastelt...

marabu

Gigant02 12. Sep 2005 11:49

Re: HTML Seite auslesen ???
 
lach sorry nee nicht url

ich meine er kennt get nicht

blöd geschrieben

lg, Gigant

marabu 12. Sep 2005 11:50

Re: HTML Seite auslesen ???
 
Mein Code verwendet übrigens Indy9.

marabu

Gigant02 12. Sep 2005 12:04

Re: HTML Seite auslesen ???
 
ok das heißt jetzt das ich mir eine neue indy version installieren muss ???

marabu 12. Sep 2005 12:06

Re: HTML Seite auslesen ???
 
Wieso - welche hast du denn?

Gigant02 12. Sep 2005 12:09

Re: HTML Seite auslesen ???
 
hmm gute frage lach (peinlich)

wie bekomme ich das raus ??

ich habe die version die bei delphi 7 standart mäßig dabei ist

lg, Gigant

Gigant02 12. Sep 2005 12:12

Re: HTML Seite auslesen ???
 
version 9 hab ich drauf

Robert_G 12. Sep 2005 12:12

Re: HTML Seite auslesen ???
 
HTML ist ein SGML-Derivat, xHTML ist XML und XML ist wiederum auch ein SGML Derivat.
SGML wäre also der kleinste gemeinsame Nenner als Markup...
Ich selbst verwende unter .Net eine kleine Library, mit der ich SGML wie XML bearbeiten kann.
Vielleicht gibt es sowas auch für Delphi32? Damit könntest du ganz easy alle Links extrahieren ohne solche Viecher wie das SHDocView Control missbrauchen zu müssen. :)
Nimmst du den IE, nimmst du augenblicklich Sicherheitslücken in Kauf. Selbst wenn du eigentlich nur Links extrahieren willst. Ich bezweifle, dass man ihn weit genug beschneiden kann, um auf der sicheren Seite zu bleiben...

marabu 13. Sep 2005 13:14

Re: HTML Seite auslesen ???
 
Hi Gigant,

kannst du das Rätsel auflösen, wie du mit Indy9 meinen Code nicht zum Laufen bringst?

Besorgte Grüße vom marabu

Gigant02 13. Sep 2005 15:41

Re: HTML Seite auslesen ???
 
nee irgendwie nicht

also ich hier läuft nix

ich habe nochmal bei null angefangen und nur deinen reinen code genommen

aber nüx

läuft nicht, gleicher fehler

lg, Gigant

marabu 13. Sep 2005 17:59

Re: HTML Seite auslesen ???
 
Liste der Anhänge anzeigen (Anzahl: 1)
Irgendwo hast du bestimmt gigantisch gepatzt. Habe jetzt auch mal meinen eigenen code getestet (http://www.amazon.de, 63 images). Nimm mal die Demo aus dem Anhang zum probieren und sag Bescheid ob alles funktioniert. Der Download-Pfad muss beim Aufruf als einziger Parameter mitgegeben werden.

marabu

Gigant02 13. Sep 2005 18:52

Re: HTML Seite auslesen ???
 
nun gut habe gerade probiert

nun mäckert er unter uses rum
er kennt die EmbeddedWB nicht oder findet er nicht

hmm ok ich habe nur professional


lg, gigant

Gigant02 13. Sep 2005 19:01

Re: HTML Seite auslesen ???
 
hmm ok jetzt geht ich habe sie einfach rausgeworfen


wofür ist denn EmbeddedWB wichtig ??

lg, Gigant

marabu 13. Sep 2005 19:19

Re: HTML Seite auslesen ???
 
Das mit EbeddedWB ist eine ungeheuerliche Schlamperei - von mir. Habe EmbeddedWebBrowser gegen WebBrowser ausgetauscht und vergessen die unit zu entfernen.

Scheint ja jetzt zu laufen - oder?

marabu

Gigant02 14. Sep 2005 07:12

Re: HTML Seite auslesen ???
 
ja läuft wunderbest


nochmal besten dank marabu


lg, Gigant

raffo 16. Sep 2005 21:42

Re: HTML Seite auslesen ???
 
Eigentlich finde ich die Komponente "httpget" viel einfacher (wenn der Link bekannt ist)

Quelle: http://www.delphipages.com/threads/t...=35720&G=35719

Gigant02 17. Sep 2005 16:17

Re: HTML Seite auslesen ???
 
hmm kannte ich noch nicht

ich schaue da einfach mal rein

lg, gigant

Sko 27. Sep 2005 15:59

Re: HTML Seite auslesen ???
 
Da ich auch grad ein ähnliches Programm baue, hab ich den Code mal ausprobiert, aber folgendes funktioniert nicht (Fehlermeldung Unknown Identifier):

Delphi-Quellcode:
var
  doc: IHTMLDocument2;
  ec: IHTMLElementCollection;
  img: IHTMLImgElement;
und WebBrowser ist auch unbekannt. Brauch ich da irgendwelche speziellen Units? Oder gibts die in Delphi 7 Personal einfach nicht? Und wenns die nicht gibt, wie könnte ich das sonst bauen? Hab Indy 10, Jvcl und HTTPGet. :gruebel:

Ich hoffe ihr könnt mir helfen.

raffo 27. Sep 2005 16:48

Re: HTML Seite auslesen ???
 
Ich hatte mal 6 Personal drauf, waren auch keine Internetkompos dabei, schätze mal bei Dir auch, oder hast Du in Deiner Werkzeugleiste nen Reiter: Internet oder / und FastNet? wohl nicht.

Wenns nur um das Saugen von Bildern geht, ist HttpGet doch ne gute Wahl...

marabu 27. Sep 2005 17:44

Re: HTML Seite auslesen ???
 
Hi Sko,

wenn dein D6PE die Schnittstellen nicht kennt, dann musst du wohl noch die Unit MSHTML einbinden. Wenn diese Unit bei dir nicht existiert, dann kannst du sie mit TLIBIMP erzeugen. Die Komponente WebBrowser steckt in der Unit SHDOCVW und wird in der Palette im Abschnitt Internet angezeigt. Alternativ kannst du dir den EmbeddedWebBrowser installieren.

Grüße vom marabu

Sko 30. Sep 2005 06:57

Re: HTML Seite auslesen ???
 
Zitat:

Zitat von raffo
... oder hast Du in Deiner Werkzeugleiste nen Reiter: Internet oder / und FastNet? wohl nicht.

In Delphi 6 PE hatte ich noch nen Reiter Internet, aber jetz hab ich nur noch die 7 PE und da ist der nicht mehr da

Zitat:

Zitat von raffo
Wenns nur um das Saugen von Bildern geht, ist HttpGet doch ne gute Wahl...

Das Saugen is nicht das Problem, nur das Saugen aller Bilder automatisch, wenn sie noch nicht heruntergeladen wurden, ist mein Problem.

Zitat:

Zitat von marabu
Alternativ kannst du dir den EmbeddedWebBrowser installieren.

Ich werds mir mal ansehen, danke für eure Hilfe

Sko 30. Sep 2005 07:56

Re: HTML Seite auslesen ???
 
mhh... da steht das EmbeddedWB für Delphi 4, 5 und 6 ist. Gibts sowas auch für Delphi 7?

marabu 30. Sep 2005 09:17

Re: HTML Seite auslesen ???
 
Es sind nur ein oder zwei Änderungen, die du machen musst. Ich glaube es waren die Versionskonstanten in den conditional defines. Eventuell noch die Aufnahme der unit Variants. Die Hinweise beim compile step sollten eindeutig sein. Das Thema EmbeddedWebBrowser für D7 sollte auch hier im Forum schon öfters angeschnitten worden sein.

marabu

Sko 30. Sep 2005 18:35

Re: HTML Seite auslesen ???
 
Ok, danke ich werds mal suchen und mir ansehen


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:03 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