Hallo Leute, es geht um folgende Seite: http://www.enertrag.de/standortkarte.php Bei der Seite (siehe Anlage) handelt es sich um die Anzeige der Auslastung von verschiedene Windparks. Um abzuschätzen zu können, wie die Ausbeutung der einzelenen Parks ist, würde ich gerne die Internetseite automatisch downloaden (z.B. alle 30min) und auswerten (Uhrzeit und Auslastung Windpark XYZ in eine Datenbank speichern). Das ganze würde ich gerne in Delphi machen, kann aber auch eine andere Sprache sein. Das Problem ist, wenn ich den Link downloade sieht der Quelltext ganz anders aus. Ich denke, dass die Internetseite ein Java-Script auslöst oder andere Links auslöst. Hat jemand eine Idee _ Danke ?!
http get... Das sollte mit Winsock laufen... Und: Ich habe keine Ahnung von Delphi.
Hallo Ist definitiv kein Javascript. Ich denke, du schaffst es die Webseite ähnlich einer Datei als Stream zu öffnen? Wenn du soweit bist, dann gehts halt darum, die richtigen Inhalte herauszulesen. Evtl. könnte hier ein XML-Parser helfen, aber Vorsicht: Viele Webautoren achten nicht sehr auf validen Code. Gruss Michael
Ich würde so etwas in Python versuchen. Die Sprachen ist einfach zu erlernen, und die mitgelieferten Bibliotheken bieten alles, was du brauchst, und vieles mehr z.B. urllib2: Herunterladen von Webseiten in 3 Code-zeilen HTMLParser: der Name sagt's re: reguläre Ausdrücke shelve: persistente Dictionaries, einfach zu benutzender Datenbankersatz www.python.org
Wenn man mit wget die Seite herunterlädt stehen noch alle Informationen drin. Du bräuchtest nur festzustellen ob zwischen "<li class" und "</li>" einer deiner Standorte vorhanden ist, z.B. "Weenermoor". Wird der Begriff gefunden, die Eigenschaft nach class="standort betrieb_60" abfragen, dann hast du die aktuelle Leistung. Der farbige Punkt ist nur ein Listenzeichen, dass gemäß der class im CSS-File entsprechend eingefärbt wird. Wenn du WinAVR installiert hast sind eigentlich schon alle dafür nötigen Programme vorhanden.
Hab mal unter Linux ein kleines Shell-Script gebaut was das gwünschte macht. Unter Windows gibts irgendwie Probleme den Ausgabeumleitungen ">", obwohl es das da eigentlich auch gibt. PS: Warum kann ich das Skript nur als Anhang hier reinsetzen, und nicht als Text, dann kommt nämlich die Meldung: "Your post seems to contain Spam: ""." Kann man das verhindern?
Die Ortsdatei und eine Beispielausgabe: Ort : Bougainville Leistung: betrieb_90 ********************** Ort : Merdelou Leistung: betrieb_90 ********************** Ort : Fontanelles Leistung: betrieb_90 ********************** Ort : Côte_d'Albâtre Leistung: im-bau ********************** Ort : Roinville Leistung: im-bau ********************** Ort : Oresmaux Leistung: im-bau ********************** Ort : Chemin_de_Tuleras Leistung: im-bau ********************** . . .
Delphi ist schon gut für sowas, hab mal ein Tool in Delphi programmiert, das von Zeitungshomepages die Schlagzeilen runtergeladen und auf einer LED-Laufschrift angezeigt hat. Ich empfehle die kostenlosen Indy-Komponenten, die laufen stabiler als die bei Delphi beiliegenden Netzwerkkomponenten: http://www.indyproject.org/ Eine Webseite kannst Du dann mit einer Codezeile und der IdHTTP Komponente runterladen: HTTP_Page := F_Main.IdHTTP1.Get("http://www.enertrag.de/standortkarte.php"); In der String-Variablen "HTTP_Page" steht dann der Webseitenquelltext drin, den Du verarbeiten musst. Das ganze besteht dann also nur noch aus Stringhandling. Suche im String, was für Dich relevant ist und kopiere das raus. Rechne damit, dass der Webmaster mal was an der Webseite ändert, daher sollten Deine Routinen fehlertolerant und "flexibel" konzipiert sein, so dass das ganze auch noch funktioniert, nachdem der Webmaster z.B. eine andere Werbung eingebaut hat. Viel Spass
Zuerst einmal Danke für alle Antworten. @Jonny Habe genau dies schon probiert. Doch das Ergebnis sieht anders als erwartet aus (PHP?). Hier die Procedure: procedure TFormMain.ButtonDownloadClick(Sender: TObject); begin HTTPGetFile.URL :='http://www.enertrag.de/standortkarte.php';; HTTPGetFile.FileName := Pfad+'Download.html'; HTTPGetFile.GetFile; end; Und Hier das Ergebnis: Logo * 0.1Home * 0.2Adressen * 0.3Impressum * 0.4Sitemap * 0.5Hilfe * 0.6Anmelden * 2 Standorte * 3 Standortkarte * 4 Fonds * 5 Wertpapiere * 6 Unternehmen * 7 Geschäftskontakt * 8 Informationen * 9 Für Geschäftspartner * 9Meine Fonds * Standortkarte * Uckermark 21:18 h * Dauerthal * Prenzlau * Pasewalk * Drense * Nadrensee * Hohenfelde * Nechlin * Neuenfeld * Uckermark * Randowhöhe * Schönfeld * Seelübbe * Hoher Berg Die Karte zeigt die zur Zeit an den Standorten erzeugte Leistung in Prozent der maximalen Leistung (Last) * Lastsymbole: * in Planung/im Bau * keine Last * schwach (unter 10%) * 10..20% * mittel (20..30%) * 30..40% * stark (41..50%) * 51..60% * hoch (61..70%) * 71..80% * voll (81..90%) * 91..100%
Das PHP Script erzeugt ja auch nur HTML Seiten, darum ist das für den Parser egal, ob nun .html oder .php oder sonstwas hinter dem Dateinamen steht. Sieht aus, als stünde in Deiner Variablen nicht der Source Code der HTML Seite drin, sondern der sichtbare Teil der Webseite. Du musst in der Doku der Komponente nachschauen, wie Du an den HTML Sourcecode kommst. Diese Zeile hat bei meinem Projekt genau dies getan: IdHTTP1.Get("http://www.enertrag.de/standortkarte.php");
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.