urllib, url.read

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.
Antworten
TJones
User
Beiträge: 2
Registriert: Dienstag 27. November 2007, 13:03

Hallo,

ersteinmal vorweg: für mich ist Python noch absolutes Neuland.

Zu meinem Problem:

ich versuche mir ein kleines Widget unter Kubuntu zu schreiben,
welches mir ein paar Daten von einer Internetseite von mir ausliest.

Ich bekomme es hin mir den Text per url.read komplett auszulesen.
Allerdings besteht dieser im prinzip nur aus einer Auflistung nach dem Schema:

Id = 234432
nächster Termin:
und noch ein paar andere Dinge die im Prinzip nur aus jeweils einer Variablen und einem dazugehörigen Wert bestehen.

Nun ist meine Frage besteht die Möglichkeit über url.read oder eine andere Funktion diese Werte jeweils in Python als Variable mit dem entsprechenden Namen zu speichern?

Zu meiner zweiten Frage:
ich nutze dieses sowohl über mein lokales Netz als auch in der Hochschule.
Zu Hause benötige ich keinen Proxy in der Hochschule schon.
Nun kann ich zwar jeweils entweder mit urllib direkt auf meine Seite zugreifen wenn ich zu Hause bin aber in der Hochschule nur mit Hilfe von:

Code: Alles auswählen

#import os, sys
#os.environ['http_proxy'] = 'http://proxy.derHochschule.de:8080'
Allerdings muss ich dies jeweils manuell ändern. Gibt es eine Möglichkeit bei einem Fehler von urllib (keine Verbindung) automatisch einen erneuten Verbindungsversuch über den Proxy zu starten?

Ich hoffe ich habe mich halbwegs deutlich ausgedrückt und bin für jede Hilfe dankbar. Hoffe auf einige Denkanstöße und Tipps da ich wie gesagt bisher noch über keine Erfahrungen mit Python verfüge.

Vielen Dank.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo TJones, willkommen im Forum,
TJones hat geschrieben:Nun ist meine Frage besteht die Möglichkeit über url.read oder eine andere Funktion diese Werte jeweils in Python als Variable mit dem entsprechenden Namen zu speichern?
Über `read()` nicht. Dazu musst du den heruntergeladenen Text schon parsen. Ist es HTML? Ist es Text? Wenn es Text ist, kannst du sowas recht simpel über Reguläre Ausdrücke lösen. Wenn es HTML ist, dann nimmst du dir eine Bibliothek die für HTML-Spraping gedacht ist wie `BeautifulSoup` oder `html5lib`.
TJones hat geschrieben:Allerdings muss ich dies jeweils manuell ändern. Gibt es eine Möglichkeit bei einem Fehler von urllib (keine Verbindung) automatisch einen erneuten Verbindungsversuch über den Proxy zu starten?
Ja. Du musst die Verbindung aufbauen lassen und wenn da eine entsprechende Exception geworfen wirst, musst du den Proxy setzen und dann es noch mal versuchen. Wie du try-except verwendest steht in jedem Tutorial.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
TJones
User
Beiträge: 2
Registriert: Dienstag 27. November 2007, 13:03

Vielen Dank für die schnelle und umfangreiche Antwort.

Im Moment lese ich die Textausgabe einer HTML - Seite ein.

Ob das nun die beste Lösung ist weiß ich noch nicht.

Aber danke erstmal für die Hinweise bezüglich `BeautifulSoup` und `html5lib`, da hab ich erstmal einen Ansatzpunkt um mich weiter zu belesen genau wie mit `try-except`.

Werde mir dies ersteinmal zu Gemüte führen. Also vielen Dank und mit Sicherheit bis bald :wink:.
Antworten