Importieren von Daten aus dem Internet

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Boldi
User
Beiträge: 32
Registriert: Montag 29. Dezember 2008, 11:02
Wohnort: Erfurt
Kontaktdaten:

Importieren von Daten aus dem Internet

Beitragvon Boldi » Samstag 3. Januar 2009, 12:15

Ich brauche ein paar Ratschläge/Tipps wie man von speziellen Internetseiten bestimmte Werte ablesen kann, die dann in einem Programm verwendet werden können.

z.B. möchte ich die Höchst- und Tiefsttemperatur für den heutigen Tag von der Website http://www.wetteronline.de/Thueringen/Erfurt.htm ablesen und in einem Programm ausgeben lassen.

Wie geht das? Ich wäre über jeden hilfreichen Link und Ratschlag erfreut.
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

Beitragvon Birne94 » Samstag 3. Januar 2009, 12:20

nja. du öffnest die seite mir urlopen

Code: Alles auswählen

f = urlopen("url")

und ermittelst dann per RegEx die gewünschten Daten...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 3. Januar 2009, 12:47

Besser noch: mit einem entsprechenden Parser wie lxml.html. Die nutzung von Mechanize hat sich auch bewährt. Ich sollte mal zu dem Thema einen FAQ-Eintrag schreiben, das wird hier ständig gefragt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Boldi
User
Beiträge: 32
Registriert: Montag 29. Dezember 2008, 11:02
Wohnort: Erfurt
Kontaktdaten:

Beitragvon Boldi » Samstag 3. Januar 2009, 14:33

Sorry, aber könntet ihr eventuell mir einen Link schicken wo das ausführlicher erklärt wird.
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Samstag 3. Januar 2009, 15:11

Benutzeravatar
Boldi
User
Beiträge: 32
Registriert: Montag 29. Dezember 2008, 11:02
Wohnort: Erfurt
Kontaktdaten:

Beitragvon Boldi » Samstag 3. Januar 2009, 18:09

danke dafür. gibt es kein deutsches tutorial?
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 3. Januar 2009, 18:16

Nein. Die Hardwarevorraussetungen an Programmierer sind "Kann feststellen ob Computer an ist und wenn dies nicht der Fall ist diesen einschalten" und "Kann Englisch". Letzteres ist dank all der Übersetungsfunktionen (Google Translate, Babelfish) und Online-Wörterbücher (LEO und etliche weitere) einfacher als je zuvor, aber eine Investition an brauchbares Englisch zahlt sich mit der Zeit doppelt und dreifach aus.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Boldi
User
Beiträge: 32
Registriert: Montag 29. Dezember 2008, 11:02
Wohnort: Erfurt
Kontaktdaten:

Beitragvon Boldi » Samstag 3. Januar 2009, 18:32

Google Translate ist wirklich sehr hilfreich danke. Damit dürfte es zu schaffen sein, wenn ich denoch fragen hab dann werd ich mich hier melden.
Benutzeravatar
Boldi
User
Beiträge: 32
Registriert: Montag 29. Dezember 2008, 11:02
Wohnort: Erfurt
Kontaktdaten:

Beitragvon Boldi » Samstag 17. Januar 2009, 09:05

ein kleines proble: welches modul muss ich importieren um folgende funktionen zu nutzen?

Code: Alles auswählen

url='http://www.google.de'
open_new(url)
open_new_tab(url)


Dann hab ich noch eine Frage zu der folgenden Funktion: Warum wird mir dabei ein Fehler angezeigt?

Code: Alles auswählen

open(url[,new=0[,autoraise=1]])

Also Python meint die kommas müssten weg und es müsste new==1 und autoraise==1 heißen.
Benutzeravatar
snafu
User
Beiträge: 5388
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Beitragvon snafu » Samstag 17. Januar 2009, 09:16

Boldi hat geschrieben:ein kleines proble: welches modul muss ich importieren um folgende funktionen zu nutzen?

Code: Alles auswählen

url='http://www.google.de'
open_new(url)
open_new_tab(url)


http://docs.python.org/library/webbrowser.html

Dir ist aber klar, dass du damit deinen "normalen" Standardbrowser öffnest, womit es sehr schwierig wird, Daten zu parsen? Nutze wie gesagt einen Parser wie lxml oder BeautifulSoup um an die gewünschten Infos zu kommen.
shcol (Repo | Doc | PyPi)
pudeldestodes
User
Beiträge: 65
Registriert: Samstag 9. Juni 2007, 23:45

Beitragvon pudeldestodes » Samstag 17. Januar 2009, 10:20

Boldi hat geschrieben:Dann hab ich noch eine Frage zu der folgenden Funktion: Warum wird mir dabei ein Fehler angezeigt?

Code: Alles auswählen

open(url[,new=0[,autoraise=1]])

Also Python meint die kommas müssten weg und es müsste new==1 und autoraise==1 heißen.


Mach die eckigen Klammern weg. In der Doku stehen in den eckigen Klammern optionale Parameter.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Samstag 17. Januar 2009, 11:05

Hier ein Beispeil fuer die aktuelle Temperatur in Juelich :wink: :

Code: Alles auswählen

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

import re
import urllib2
from BeautifulSoup import BeautifulSoup

def tag2txt(tag):
    replaces = {" ": u"", "°" : u"°"}
    txt = tag.contents[0].strip()
    for (old, new) in replaces.items():
        txt = txt.replace(old, new)
    return txt


try:
    url = urllib2.urlopen("http://www.fz-juelich.de/gs/meteo/metmess1de/")
    soup = BeautifulSoup(url.read())
    temp =  soup.find(text=re.compile("Lufttemperatur")).findNext("td")
    output = u"%s" % tag2txt(temp)   
except urllib2.URLError:
    output = "Unknown"
   
print output.encode("utf-8"),
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
Boldi
User
Beiträge: 32
Registriert: Montag 29. Dezember 2008, 11:02
Wohnort: Erfurt
Kontaktdaten:

Beitragvon Boldi » Samstag 17. Januar 2009, 12:46

danke das ist mir eine große hilfe, aber bei mir kommt die fehlermeldung das BeautifulSoup unbekannt ist
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Samstag 17. Januar 2009, 13:15

Hmm ... und was sagt dir das? Vielleicht solltest du es installieren? http://www.crummy.com/software/BeautifulSoup/
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Beitragvon hendrikS » Samstag 17. Januar 2009, 15:18

Ich hatte irgendwie Probleme mit der Codiererei und habe den Code wie folgt anpassen müssen, um das erwartete Ergebnis zu erzielen.

Code: Alles auswählen

import re
import urllib2
from BeautifulSoup import BeautifulSoup

def tag2txt(tag):
    #1.Anpassung
    replaces = {" ": u"", "°" : u"\xB0"}
    txt = tag.contents[0].strip()
    for (old, new) in replaces.items():
        txt = txt.replace(old, new)
    return txt


try:
    url = urllib2.urlopen("http://www.fz-juelich.de/gs/meteo/metmess1de/")
    soup = BeautifulSoup(url.read())
    temp =  soup.find(text=re.compile("Lufttemperatur")).findNext("td")
    output = u"%s" % tag2txt(temp)
except urllib2.URLError:
    output = "Unknown"

#2. Anpassung
print output

Ansonsten super Snippet.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder