Mit Website-Informationen Kalender ändern

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
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Da sich in der Schule dauernd die Stunden ändern, wollte ich ein Programm schreiben, was diese Änderungen in meinen Kalender einträgt.
Es soll also den Quelltext der Vertretungsplan-Seite nach meiner Klasse durchsuchen und die dort stehenden Änderungen in meinen Google-Kalender o.ä. schreiben.

Der Quelltext ist ungefähr auf folgende Weise aufgebaut:

Code: Alles auswählen

<klasse>10</klasse>
<fach>Inf</fach>
<stunde>1</stunde>
<info>statt Ma</info>

<klasse>11</klasse>
...
Dabei kann die Klasse 10 mehrmals auftreten, mit jeweils unterschiedlichen Änderungen.

Ist Python dafür ein geeignetes Mittel? Und wenn ja, wie kann ich meine Idee umsetzen?
BlackJack

@_nohtyp_: Das sollte mit Python machbar sein.

So sieht tatsächlich der Quelltext der Vertretungsplan-Seite aus? Das ist kein HTML. Oder ist das keine Webseite sondern eine XML-Datei die man herunterladen kann?

Egal ob HTML oder XML, parsen kann man beides mit `lxml`.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Ich habe gerade nachgeschaut. Du hast Recht, es ist XML.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Ok, ich weiß jetzt erstmal, wie ich an die Daten komme (getElementsByTagName usw.) Der schwierige Teil kommt jetzt.
Wie greife ich auf meinen Google-Kalender zu und schaue, ob die Änderungen mich betreffen, und wenn ja, wie ich diese automatisch ändere.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Bis jetzt wird mir jede Klasse mit den Änderungen gezeigt. Ich will aber nur Klasse 10 sehen, also <klasse>10</klasse>. Wie kann ich das umsetzten, also auf den Inhalt zwischen dem Tag zugreifen?
BlackJack

@_nohtyp_: So ganz allgemein: Zum Beispiel mit einem XPath nur die Elemente auswählen die Du haben möchtest.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Kann ich Xpath mit Dom verwenden?
BlackJack

@_nohtyp_: Kann man DOM verwenden ist wohl eher die Frage. :twisted: Oder: Warum will man das verwenden? Wenn ich eklige APIs will dann benutze ich Java. Und selbst da gibt es schöne Alternativen zu DOM.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@_nohtyp_: Was BlackJack sagen will, ist, daß für Python »ElementTree« gerne in Zusammenhang mit XML verwendet wird. Ich würde zuerst den Inhalt in eine Python-Struktur überführen, die dann einfach nach »klasse« gefiltert werden kann.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Danke für die Tipps. Mein Programm läuft soweit.
Wie kann ich nun auf den Google Kalender zugreifen? Kann jemand einen kleinen Sample-Code posten?

Wäre echt super.
BlackJack

@_nohtyp_: Ist die Suche nach der Dokumentation von Google echt so schwer: https://developers.google.com/google-apps/calendar/
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Ehrlich gesagt ja. Ich blicke da nicht durch. Ich schaffe es nicht mal die Kalender-Module zu importieren.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Kann ich mit Python auf CalDAV zugreifen. Wäre vielleicht eine Alternative.
BlackJack

@_nohtyp_: Es gibt im „Python package index” zumindest Module zu CalDAV und ICalendar: https://pypi.python.org/pypi/caldav und https://pypi.python.org/pypi/icalendar
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Mein Programm ist jetzt annähernd fertig. Ich danke allen Antworten. Eure Anregungen waren mir eine große Hilfe, auf manches wäre ich sonst einfach nicht gekommen.

:wink: nohtyp
Antworten