protokollierte Statusabfrage für YIM - mit Python machbar?

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
arrbee
User
Beiträge: 2
Registriert: Samstag 4. April 2009, 18:24

Hallo!


Bin ganz neu unterwegs mit Python und wollte - bevor ich mich möglicherweise vergeblich einarbeite - wissen, ob man folgendes Projekt mit dieser Programmiersprache angehen könnte:

* Sohnemann verbringt sehr viel Zeit (zuviel Zeit :D) mit Surfen im Internet & sehr viel intensiver mit Chatten anstelle von Hausaufgaben und Lernen (nix gegen Internet aber die Noten sind auf ein gefährliches Niveau abgefallen, Sitzenbleiben dieses Jahr leider nicht mehr ausgeschlossen)

* als Konsequenz wurden etwas restriktivere Online-Zeiten vereinbart, v.a. in puncto Chats mit Skype und YIM, aber wir beide Eltern sind nicht überzeugt, daß man sich daran hält

* für den Yahoo Messenger gibt es eine (endlich mal funktionierende) website zur Status-Abfrage, mit der man auch den "unsichtbar"-Status abfragen kann (URL: http://www.messengerstatus.net/)

* wünschenswert wäre es, wenn man ein kleines Programm hätte, das auf dieser website in regelmäßigem Abstand (z.B. alle 5-10 Minuten) den Status eines bestimmten Nutzers (z.B. Maxl) abfragt und das Ergebnis dann jeweils fortlaufend in eine txt-Datei schreibt


Kann man sowas prinzipiell mit Python machen?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Hallo und Willkommen im Forum!

Wenn ich Dich richtig verstanden habe, so willst Du den Inhalt einer Webseite analysieren? Das kannst Du mit Python definitiv realisieren. Du kannst mit Bordmitteln (`urllib*`) via HTTP eine Webseite herunterladen und dann mittels eines HTML-Parsers (`lxml.html`, `BeautifullSoap`, ...) gezielt nach Daten suchen.

Ich würde vermutlich auf eine Kombi aus Requests und `lxml.html` setzen.

Prinzipiell nicht schwer; aber je nach Login- / Authentifizierungsmechanismen oder auch dem Einsatz von JavaScript kann es auch problematischer sein.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
arrbee
User
Beiträge: 2
Registriert: Samstag 4. April 2009, 18:24

Hallo - prompte Antwort! :)


Ja, ich glaube prinzipiell läuft es auf eine Inhaltsanalyse raus - etwas "grob" formuliert: wenn ich den Status eines Nutzers auf dieser Website abfrage (Nickname in die Zeile eingeben und "Check"-Button betätigen) erhalte ich eine Bildschirmausgabe "ist offline", "ist online" oder "ist unsichtbar".

Meine letzten Programmierschritte stammen noch aus den frühen 1990ern mit BASIC - grobe Einschätzung: ist sowas ein sehr langwieriges Projekt, dessen Programmierung viele Wochen Zeit fressen wird? Oder handelt es sich dabei eher um ein machbares, kleines Programm?
BlackJack

@arrbee: Die Programmierung selbst ist wahrscheinlich sehr einfach. Da dürfte recht wenig Quelltext erforderlich sein. Die meiste Zeit wird beim kennenlernen der involvierten Techniken drauf gehen. Also HTML, HTTP, herausfinden wie die Abfrage auf der Webseite realisiert ist, dann vielleicht ein wenig CSS oder XPath um die Antwort geziehlt aus dem gelieferten HTML zu fischen.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

arrbee hat geschrieben:ist sowas ein sehr langwieriges Projekt, dessen Programmierung viele Wochen Zeit fressen wird? Oder handelt es sich dabei eher um ein machbares, kleines Programm?
Wie BlackJack schon herausstellte ist das für einen Programmierer, der sich in den Technologien und den entsprechenden Libs auskennt eine einfache Sache. Das Beherrschen den Sprache sei dafür eh einmal vorausgesetzt ;-)

Für einen Anfänger in Python ist es sicherlich machbar; sofern er sich nicht auch noch mit den von BlackJack genannten Technologien befassen muss.

Wenn Du beides nicht beherrschst, kann das schnell langwierig werden, weil Du an zu vielen Baustellen parallel arbeiten müsstest.

Wenn ich das richtig aus Deinen bisherigen Postings herauslese, kannst Du noch kein Python? Dann solltest Du auf jeden Fall erst einmal die Grundlagen lernen. Tutorial Empfehlungen findest Du u.a. im wiki: wiki.python.de.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ich finds ja löblich dass du Python lernen willst, aber ein soziales Problem mit einer technischen Lösung erschlagen zu wollen funktioniert idR eher nicht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten