Announcement

Collapse
No announcement yet.

HTML-Seite aus dem Internet mit Delphi Laden/Speichern und Quelltext auslesen.Aber Wie?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • HTML-Seite aus dem Internet mit Delphi Laden/Speichern und Quelltext auslesen.Aber Wie?

    Hallo an alle Prog's :-)

    Ich würde gerne über Delphi eine HTML-Seite aus dem Internet Laden<b>
    und Speichern. Danach möchte ich den Quelltext dieser Seite auslesen und verwerten. Ich habe vor eine Formel 1 Datenbank zu programmieren mit, die sich nach jedem Rennen aktuallisiert (Rennergebnisse). Könnte mir auch vorstellen diese Methode für ein eigene Börsensoftware zu verwenden. Aktienwerte nach jedem Tagesabschluß aktualisieren.
    Wer kann mir helfen? Für Beispiele wäre ich dankbar. Bin noch ein anfaänger :-)

  • #2
    Hallo,

    wenn die <b>TWebBrowser</b>-Komponente von Delphi 5 genutzt wird, kann man über das folgende Beispiel den HTML-Text der aktuell geladenen Webseite auslesen/anzeigen:
    <pre>
    procedure TForm1.ToolButtonGetHTMLClick(Sender: TObject);
    var
    aHTMLDoc : IHTMLDocument2;
    aHTMLBody : IHTMLElement;
    swHTMLText : WideString;
    begin
    if not VarIsEmpty(WebBrowser1.Document) then
    begin
    aHTMLDoc := WebBrowser1.Document as IHTMlDocument2;
    aHTMLBody := aHTMLDoc.Get_body;
    swHTMLText := aHTMLBody.outerHTML;
    ShowMessage(swHTMLText);
    end;
    end;
    </pre>
    Der Internet Explorer hat mit DOM ein eigenes Objektmodell. Wenn das eigene Delphi-Programm auf die Objekte zugreifen will, muss zuerst die Typbibliothek <i>Microsoft HTML Object Library</i> installiert werden (Delphi-Menü: <i>Projekt | Typbibliothek importieren</i>). Danach steht das Interface <b>IHTMLDocument2</b> zur Verfügung, wenn die folgenden Units ins eigene Projekt eingebunden werden:
    <pre>
    uses ActiveX, MSHTML_TLB;
    </pre>
    Die HTML-Seite kann ebenfalls direkt über die TWebBrowser-Instanz im Formular angefordert werden:
    <pre>
    WebBrowser1.Navigate('http://www.entwickler-forum.de');
    </pre>
    P.S: Im <b>Download</b>-Order des Delphi-FORUMS ist ein Beispielprojekt zu finden

    Comment


    • #3
      Vielen Dank für die Hilfe Herr Kosch!<br>
      Ich habe da noch ein kleines Problem. Wie komme ich an die<br>
      Microsoft HTML Object Library? Ich habe schon auf der Microsoft Web-Site<br>geschaut, aber nichts finden können...zumindest keine MSHTML.tlb<br>Ohne diese Library komme ich nicht weiter

      Comment


      • #4
        Hallo Marco,<br>schau noch mal in den Beitrag von Herrn Kosch. Dort steht, dass Du eine Typbibliothek importieren mußt. Importieren mußt Du die "Microsoft HTML Object Library (Version X)". X, weil ich nicht weiß, welche Version bei Dir angezeigt wird. Das Generieren des Komponentenwrappers würde ich abschalten. Siehe Checkbox ganz unten auf dem "Typbibliothek importieren" Dialog. Nach dem Import sollte in Deinem Imports-Verzeichnis die Datei mshtml_tlb.pas stehen. Diese Datei mußt Du Deinem Projekt hinzufügen.<br>:-) Jens Schuman

        Comment


        • #5
          Danke Dir Jens!!!<br>
          Das hat funktioniert. Ich bin total begeistert.<br>
          <br><br>
          Freundlichste Grüße an Jens und Herr Kosc

          Comment


          • #6
            Ich habe jetzt noch folgendes Problem:<br>
            Wie komme ich jetzt an den Sourcecode einer HTML-Seite ran?<br>
            Ich möchte die Seite gerne auslesen und bestimmte Daten in einer<br>
            Tabelle speichern.Wie kann ich da vorgehen

            Comment


            • #7
              Hallo,

              wenn die HTML-Seite aus einer Tabelle besteht und die Einträge dort in eine eigene Datenbank-Tabelle sollen, kann man direkt auf die Fähigkeiten der <b>ADO</b>-Objekte zugreifen. ADO ist in der Lage, eine HTML-Tabelle als "Datenbank-Tabelle" einzulesen. Wenn die <b>ADO Express</b>-Komponenten von Borland zur Verfügung stehen, reichen die folgenden Programmzeilen aus:
              <pre>
              ADOConnImport.Properties['Extended Properties'].Value := 'HTML Import';
              ADOConnImport.Properties['Data Source'].Value := 'C:\Temp\Export.htm';
              ADOTableImport.TableName := 'Export';
              </pre>
              Dabei ist <i>ADOConnImport</i> eine TADOConnection-Instanz, während sich hinter <i>ADOTableImport</i> eine TADOTable-Instanz verbirgt

              Comment


              • #8
                Guten Morgen Herr Kosch,

                nach dem ich mein Programm um ihre Zeilen ergänzt habe,<br>
                bekomme ich folgende <b>Fehlermeldung:</b> [Fehler] Datenbank.pas(66):<br> Undefinierter Bezeichner: 'ADOConnImport'<br>
                Was ist die ADO und muß ich Sie nachträglich installieren,<br>
                ist sie im Delphi5Prof enthalten?<br>
                Vielen Dank für die Hilfe

                Comment


                • #9
                  du verwendest kein ADO!!!!!!

                  welche version von delphi hast du?

                  Comment


                  • #10
                    siehe text von A.kosch!

                    <b>Wenn die ADO Express-Komponenten von Borland zur Verfügung stehen, reichen die folgenden Programmzeilen aus: </b&gt

                    Comment


                    • #11
                      Was ist die ADO und muß ich Sie nachträglich installieren,

                      <b>Was ado ist weißt du jetzt! du mußt dir das nachträglich bestellen (kostet aber etwas!) Oder du schauts dich nach alternativen um!</b>

                      ist sie im Delphi5Prof enthalten? <b>NEIn</b&gt

                      Comment


                      • #12
                        ICh habe leider kein ADO. Gibt es Alternativen und wenn ja,<br>
                        welche sind es und wie sehen die aus

                        Comment


                        • #13
                          Hallo,

                          man muss zwischen den <b>ADO</b>-Objekten (COM-Objekte von Microsoft, so jeder kostenlos downloaden und installieren darf) und den <b>ADO Express</b>-Komponenten unterscheiden. Auf aktuellen Windowsversionen und bei einer Vollinstallation vom Internet Explorer 5 sind die ADO-Objekte bereits auf dem Rechner. Ansonsten kann das sogenannte MDAC-Setup (<i>mdac_typ.exe</i> mit ca. 5 MByte) über die Download-Webseite von Microsoft kostenlos heruntergeladen werden.

                          Um nachzusehen, ob die ADO-Objekte von Microsoft bereits auf dem eigenen Rechner sind, würde ich Delphi starten und über <i>Projekt | Typbibliothek importieren</i> nachsehen, ob der Eintrag <b>Microsoft ActiveX Data Objects 2.x</b> in der Liste angezeigt wird. Wenn ja, ist bereits alles an Bord.

                          Mit jeder Delphi-Version (ab Delphi 3) kann man direkt auf die ADO-Objekte zugreifen, wie das folgende Beispiel demonstriert:
                          <pre>
                          uses ComObj;

                          const
                          cSELECT = 'SELECT * FROM clients.dbf';
                          cDSN = 'ADODBDEMOSdBASE';

                          procedure TFormMain.ToolButtonOpenClick(Sender: TObject);
                          var
                          vRecordSet : OleVariant;
                          iRow, iCol : Integer;
                          begin
                          vRecordSet := CreateOleObject('ADODB.Recordset');
                          vRecordSet.Open(cSELECT, cDSN);
                          iRow := 1;
                          repeat
                          for iCol := 0 to 6 do
                          StringGrid1.Cells[iCol, iRow] := vRecordSet.Fields[iCol].Value;
                          vRecordSet.Move(1);
                          Inc(iRow);
                          until vRecordSet.EOF;
                          end;
                          </pre>
                          Dabei wird der Inhalt der Datenbanktabelle über einen vorher angelegten <b>ODBC-DSN</b> ausgelesen und in einem <b>TStringGrid</b> angezeigt.

                          Wenn man auf ADO über VCL-Komponenten zugreifen möchte, die Daten in TDBGrid und TDBEdit anzeigen möchte und den Komfort der visuellen Programmentwicklung über den Objektinspektor nicht missen will, benötigt man entweder ADO Express (von Borland) oder eine andere ADO-Komponentensammlung von anderen Anbietern.

                          &#10

                          Comment


                          • #14
                            Hallo,<p> wenn du die ADO SDK-Hilfedatei (englisch) sowie zwei Zusatzprogmme benötigts, dann Schau dir den folgenden Beitrag an:<br><a><a href="/webx?50@@.ee7e0c5">Elmar Herzog "MDAC 2.6 SDK Hilfedatei" 09.04.2001 09:54 (Ordner ADO)</a></a><br>PS: Die VB-Beispiele lassen sich relativ einfach in Delphi umwandeln. Ich selbst habe ebenfalls kein ADOExpress. Warum viel Geld ausgeben, wenns so auch funktioniert

                            Comment

                            Working...
                            X