Webseite parsen und Wert auslesen, wie geht das?

Gast #2048275
Lesenswert?

Grundsätzliche Vorgangsweise:

1. Webseite in einem String oder eine Datei laden
2.
- Entweder Webseite mithilfe von Stringfunktionen so lange ausseinander 
schneiden, bis nur noch der Wert übrig bleibt
- Oder mit Hilfe von Regular Expressions den Wert suchen und matchen
- oder mit Hilfe eines DOM / XML parsers die Webseite einlesen und den 
entsprechenden Knoten auslesen

Alternativ:
Gucken ob die Informationen auf bessere WEise zu kriegen sind (RSS Feed, 
JSON, etc)

Ich würde für sowas mal grob Python oder Perl empfehlen, geht aber 
theoretisch mit allem vom Assembler über C, Java bis hin zu einzelnen 
Programmen, die mit einer Shell sprache zusammengeklebt werden.
Gast #2048612
Lesenswert?

1
#!/usr/bin/env python
2
# -*- coding: utf-8 -*-
3

4
import urllib
5
from BeautifulSoup import BeautifulSoup
6

7
url = urllib.urlopen('http://www.berlin.de/wetter/')
8
website = url.read()
9
url.close
10

11
soup = BeautifulSoup(website)
12
print soup('li', { 'class' : 'temperatur' },'a')[0].text

Ein funktionierender Python-Code der ausschließlich die Temperatur 
ausgibt. Im gleichen Verzeichnis muss dann nur noch die Datei 
BeautfulSoup.py liegen. Ist hier verfügbar:

http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.2.0.tar.gz

Grüße Patrick
Gast #2048674
Lesenswert?

Rudi schrieb:
> Hallo Zusammen,
>
> interessantes Thema, wollte ich auch schon öfters mal ausprobieren.
> Und zwar hier den DAX Wert auslesen. Gleich links auf der Seite, der
> wird alle 15 Sekunden (oder so) aktualisiert.
> Aber irgendwie kriege ich den Wert nicht raus.
>
> Hier die Internetseite.
> http://www.ls-d.de/Home.8.0.html
>
> Schafft Ihr das, danke
>
> Rudi

Ihr habt es gewollt.

runterladen:
http://www.gnu.org/software/wget/
http://code.google.com/p/tesseract-ocr/

Pfade anpassen, als Textdatei speichern und Endung in .bat ändern, 
anschließend regelmäßig aufrufen (Taskplaner oder wie das heißt oder 
anderes Programm)
1
@echo off
2
wget.exe http://www.ls-d.de/typo3conf/ext/skt_quotes/chart.php -O chart.png -q
3
tesseract.exe chart.png chart
4
del chart.png
5
set /p str= < chart.txt
6
echo %date% %time% %str% >>log.txt
7
set str
8
del chart.txt

Wert wird in log.txt im Verzeichnis der .bat mit Datum und Uhrzeit 
protokolliert, Beispiel nach 4 Aufrufen:
1
04.02.2011 19:34:16,65 7216.25 
2
04.02.2011 19:36:33,96 7217.25 
3
04.02.2011 19:36:56,81 7217.25 
4
04.02.2011 19:40:01,64 7215.75
Das lässt sich beliebig weiterverarbeiten.

Verwendung auf eigene Gefahr usw.
Gast #2048833
Lesenswert?

rudi schrieb:
> Hallo,
>
> super Jungs, ....danke für eure Hilfe, ....ich hätte noch 3 Jahre
> rumprobieren und googeln können, ....alleine hätte ich es nicht
> geschnallt!
>
> Rudi

Gerne. Da soll mal einer behaupten man braucht die Kommandozeile nicht 
mehr...

Klaus De lisson schrieb:
> Eine Frage zum letzten Beitrag von "Bastler (Gast) ".
>
> GNU = Linux ...  oder ?
> Das heisst dein toller tipp geht nicht in Windows ?
>
> Gruss Klaus

Nein, Nein, das Script ist ausschließlich für Windows! Die Programme 
gibts für beide Systeme. Wenn man also das Script für irgendeine 
Unix-Shell (ich kenne mich da überhaupt nicht aus) umbaut sollte es auch 
unter Linux funktionieren.
Gast #2049001
Lesenswert?

Bastler schrieb:
> Nein, Nein, das Script ist ausschließlich für Windows!

und wie verkettet man die beiden Klick-Ereignise auf exe Programme :)

\spass-off

einfach cygwin herunterladen und die Skripte direkt
eintippen und ausprobieren*

*) ich weiss man kann wget.exe in cmd benutzen, aber
cmd ist so schrecklich :)
Gast #2049018
Lesenswert?

poljot schrieb:
> freebasic oder visualbasic

Unter Visual Studio (VB2008 / 2010) geht es auch. Google mal nach 
"HttpWebRequest". Das dürfte dein Problem lösen. Die Funktionsaufrufe 
sind zwar für einen Anfänger nicht gerade trivial, aber doch zu 
beherrschen. Die weitere Vorgehensweise wurde bereits weiter oben 
beschrieben. Datei aus dem Web laden und quasi auseinandernehmen 
(Stringfunktionen).

Viel Erfolg
#2049020
Lesenswert?

Jens schrieb:
> Unter Visual Studio (VB2008 / 2010) geht es auch. Google mal nach
> "HttpWebRequest". Das dürfte dein Problem lösen. Die Funktionsaufrufe
> sind zwar für einen Anfänger nicht gerade trivial, aber doch zu
> beherrschen. Die weitere Vorgehensweise wurde bereits weiter oben
> beschrieben. Datei aus dem Web laden und quasi auseinandernehmen
> (Stringfunktionen).

HttpRequest hab ich auch schon benutzt, aber glaub mir Webclient ist 
deutlich einfacher. Nur wenn man beim Download noch Argumente übergeben 
muss, sollte man HttpRequest nehmen (das musste ich vor kurzem).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren