Datum: 01.07.2008 15:29
Hallo liebe Leute, Hallo liebe Freaks! Ich habe folgendes Projekt vor: Ich möchte ein Programm in C / C++ schreiben, welches Daten von einer Internetseite holt, z.B. von Wetter.com und möchte bei Start des Programms eine Log-Datei erzeugen lassen, wie das Wetter jeden Tag ist/war. Nun zur Frage: Wie kann ich von einer Seite wie beispielsweise wetter.com Daten holen, ohne die Seite zu betrachten. Sprich, lediglich Daten auslesen und diese in einer Log- oder Textdatei speichern? Ich habe schon dran gedacht, den HTML-Code der jeweiligen Seite zu analysieren, nur, was ist, wenn an der bestimmten Stelle, an der im HTML-Code die Information steht, plötzlich was anderes steht, wenn beispielsweise Änderungen auf der Seite stattgefunden haben? vielen Dank!
Datum: 01.07.2008 15:34
Rolf Küsster wrote: > Wie kann ich von einer Seite wie beispielsweise wetter.com Daten holen, > ohne die Seite zu betrachten. Sprich, lediglich Daten auslesen und diese > in einer Log- oder Textdatei speichern? Prinzipiell so: 1. HTTP-Verbindung (TCP auf Port 80) zum Server (wetter.com) aufbauen 2. Anforderung senden (sowas: "GET / HTTP/1.0" und so weiter) 3. Daten lesen 4. Verbindung abbauen 5. Daten auswerten Die Verbindung baut man mit den üblichen Funktionen der C-Bibliothek auf (socket, read, fread, write, fwrite, ioctl und dergleichen). > Ich habe schon dran gedacht, den HTML-Code der jeweiligen Seite zu > analysieren, nur, was ist, wenn an der bestimmten Stelle, an der im > HTML-Code die Information steht, plötzlich was anderes steht, wenn > beispielsweise Änderungen auf der Seite stattgefunden haben? Ganz ehrlich? Ja? Ok -- dann hast du Pech gehabt. Guck mal, evtl. stellt dein Dienst (wetter.com ..) auch spezielle RSS-Feeds oder sowas zur Verfügung, da bist du dann auf der sicheren Seite.
Datum: 01.07.2008 17:25
Wenns denn Visual Studio oder Delphi sein darf, kann das ganze mit sehr geringem Aufwand realisiert werden. Die entsprechenden, vorhandenen Komponenten erlauben es bereits ohne Programmieraufwand, den HTML Code runterzuladen und z.B. in einen String zu kopieren. Danach kannst Du mit regulären Ausdrücken oder einem eigenen Parser die gewünschten Informationen suchen. Hab früher mal einen Newsticker gemacht, der von Zeitungshomepages Schlagzeilen heruntergeladen hat. Am besten Du schaust im HTML Code was vor der gewünschten Stelle genau drin steht. Meist konnte ich einfach die vorherigen ein- oder zwei HTML Tags für die Suche nehmen. Es muss einfach was sein, dass sonst nirgends im HTML Code auftaucht. Dann einfach alles vorherige wegschemeissen und bis zum nächsten HTML Tag alles kopieren. Kommt halt drauf an, wie Deine Daten genau aussehen. Wenn Du das einigermassen schlau machst, geht es auch noch, wenn kleine Änderungen an der Homepage vorgenommen werden. Aber man muss natürlich immer damit rechnen, dass es mal so umgestellt wird, dass es nicht mehr funktioniert und man dann was anpassen muss.
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel


