Einloggen mit Session-ID
Die Seite "team-ulm.de/login.php" redirectet nur dann, wenn keine POST-daten vorhanden sind, denke ich. Welchen inhalt sollte denn besagtes hidden-field haben? Den des Cookies? Und wie überprüfe ich was die Header übermitteln?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Den gleichen den der Browser auch schicken würde. Welcher das ist, musst du in der Form schauen.Xabyt hat geschrieben:Welchen inhalt sollte denn besagtes hidden-field haben?
Auf ``print einbot1.headers`` zu kommen ist wirklich nicht schwer, oder?Xabyt hat geschrieben:Und wie überprüfe ich was die Header übermitteln?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das hidden-feld hatte ich ja wirklich übersehen. es heißt "herkunft. Und entschuldigung, mit den headers das stimmt, aber ich dachte es wäre eine besondere, externe funktion. bei der Anweisung ``print einbot1.headers`` wird folgendes ausgegeben:
Was kann ich daraus schließen? Was bewirkt die Transfer-Encoding-Eigenschaft "chunked"?
Danke für deine Hilfe und deine Ausdauer speziell in meinem Fall.
Code: Alles auswählen
Date: Sat, 05 May 2007 15:41:26 GMT
Server: Apache/2.0.54 (Debian GNU/Linux)
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Danke für deine Hilfe und deine Ausdauer speziell in meinem Fall.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das keine Cookies an den CLient geschickt werden. Entweder nutzt die seite keine Cookies oder das Login ist fehlgeschlagen. Du müsstest mal sehen was ``einbot1.read()`` für eine HTML-Seite ausspuckt. Ich tippe mal auf sowas wie "Falscher Benutzername/Passwort". Vielleicht liegt es aber auch am User-Agent, dass die Seite keine Robits einloggen lässt. Dann könntest du den User-Agent fälschen, aber sie dir bewusst, dass dies dann gegen die Benutzungsrichtlinien der Seite verstossen kann.Xabyt hat geschrieben:Was kann ich daraus schließen?Code: Alles auswählen
Date: Sat, 05 May 2007 15:41:26 GMT Server: Apache/2.0.54 (Debian GNU/Linux) Connection: close Transfer-Encoding: chunked Content-Type: text/html; charset=utf-8
Ist auf der Seite HTTP/1.1 Transfer-Encoding beschrieben. Ich denke nicht, dass du dich um das Transfer-Encoding kümmern musst.Xabyt hat geschrieben:Was bewirkt die Transfer-Encoding-Eigenschaft "chunked"?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo!
Und so gehts mit "mechanize":
mfg
Gerold

Und so gehts mit "mechanize":
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
import mechanize
import urllib
# Login
loginurl = "http://www.team-ulm.de/login.php"
logindata = urllib.urlencode(
{
"benutzer": "BENUTZER",
"passwort": "PASSWORT",
"herkunft": ""
}
)
response = mechanize.urlopen(loginurl, logindata)
response.read() # wichtig
# Posteingang anzeigen
posteingangurl = "http://www.team-ulm.de/p_myprofile.php?show=inbox"
response = mechanize.urlopen(posteingangurl)
print response.read()
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
@ Gerold:
Ich glaube ich werde das auch mit dem Modul mechanize versuchen. Ich habe es mir bereits geladen, nur das Problem ist, ich bin in meinem Python-buch noch nicht beim Kapitel über modulare Programmierung, d.h. ich weiß nicht wie man ein solches Modul installiert. ich habe es bereits über die SETUP.py probiert, scheint aber nicht zu gehen.
Ich glaube ich werde das auch mit dem Modul mechanize versuchen. Ich habe es mir bereits geladen, nur das Problem ist, ich bin in meinem Python-buch noch nicht beim Kapitel über modulare Programmierung, d.h. ich weiß nicht wie man ein solches Modul installiert. ich habe es bereits über die SETUP.py probiert, scheint aber nicht zu gehen.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Felix!Xabyt hat geschrieben:``python C:\mechanize-0.1.6b\mechanize-0.1.6b\setup.py install``
Schade, dass du uns die Fehlermeldung nicht mitgeteilt hast. Aber wahrscheinlich findet dein Windows den Python-Interpreter nicht.
Probier's mal so: ``C:\mechanize-0.1.6b\mechanize-0.1.6b\setup.py install``. Also ohne ``python``.
Du kannst den Pfad zu Python aber auch zum Systempfad hinzufügen. Wie das geht: [wiki]FAQ#WieStarteIchSkripte[/wiki]
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hast du das wirklich in der Shell eingegeben oder im Python-Interpreter? (Und wenn du dich wunderst... es gibt Leute, die machen wirklich sowas)Xabyt hat geschrieben:Ich glaube ich muss dich falsch verstanden haben, aber wenn ich in der Shell ``python C:\mechanize-0.1.6b\mechanize-0.1.6b\setup.py install``eingebe, so wird ein syntax error ausgegeben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Es geht aber noch viel einfacher:
Installiere dir mit "ez_setup.py" das Programm "easy_install.exe".
http://peak.telecommunity.com/DevCenter ... sy-install
Wenn "easy_install.exe" im Pfad ist, dann brauchst du nur mehr das hier eingeben:
Damit wird dir "mechanize" installiert.
Wenn easy_install nicht im Pfad ist, dann musst du natürlich den ganzen Pfad zum Programm mit angeben:
Es rentiert sich, ``C:\Python25\Scripts\`` im Pfad zu haben. Auch für später.
Mit easy_install kannst du sehr viele Python-Module installieren. Welche das sind, siehst du hier: http://python.org/pypi
Alle Module, für die es eine "*.egg"-Datei gibt, lassen sich damit installieren.
mfg
Gerold

Installiere dir mit "ez_setup.py" das Programm "easy_install.exe".
http://peak.telecommunity.com/DevCenter ... sy-install
Wenn "easy_install.exe" im Pfad ist, dann brauchst du nur mehr das hier eingeben:
Code: Alles auswählen
easy_install mechanize
Wenn easy_install nicht im Pfad ist, dann musst du natürlich den ganzen Pfad zum Programm mit angeben:
Code: Alles auswählen
C:\Python25\Scripts\easy_install.exe mechanize
Mit easy_install kannst du sehr viele Python-Module installieren. Welche das sind, siehst du hier: http://python.org/pypi
Alle Module, für die es eine "*.egg"-Datei gibt, lassen sich damit installieren.
mfg
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Nein, es ist sogar noch besser. easy_install kann jegliche Art von Tarballs in denen es Distutils-Skripte gibt automatisch runterladen, entpacken, zu Eggs bauen und dann installieren.gerold hat geschrieben:Alle Module, für die es eine "*.egg"-Datei gibt, lassen sich damit installieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hallo,
es wird folgende Fehlermeldung ausgegeben:
Der Doppelpunkt wird rot hinterlegt.
Woran kann das liegen?
es wird folgende Fehlermeldung ausgegeben:
Code: Alles auswählen
>>> C:\mechanize-0.1.6b\mechanize-0.1.6b\setup.py install
SyntaxError: invalid syntax
Woran kann das liegen?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Du gibt den Code in den Python-Interpreter ein (so wie ich es schon vermutet habe). Dieser versucht das natürlich als Python-Quelltext zu verarbeiten, was nicht funktioniert. Du musst es in der Shell (Eingabeaufforderung eingeben), also das Ding wo man Shellbefehle absetzt. Das wo der Python-Interpreter normalerweise mit dem Aufruf ``python`` gestartet wird.Xabyt hat geschrieben:Woran kann das liegen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das ist mir ja ein wenig peinlich, nur ist es irreführend, dass diese Anwendung doch als "Python Shell" bezeichnet wird. Diese Anwendung wird in meinem Buch als Python-Shell bezeichnet. Ich starte diese vermeintlich shell über die IDLE, aber in der Taskleiste wird sie als Python Shell bezeichnet. Ich finde die richtige Shell nicht!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Stimmt. Das ist die Interaktive Python Shell, also der Interpreter.Xabyt hat geschrieben:Das ist mir ja ein wenig peinlich, nur ist es irreführend, dass diese Anwendung doch als "Python Shell" bezeichnet wird.
Ich meinte aber die System-Shell, also das was es schon viel, viel länger als Python gibt.Xabyt hat geschrieben:Diese Anwendung wird in meinem Buch als Python-Shell bezeichnet.
Wie man so eine Shell, oder in Windows-Deutsch Eingabeaufforderung (oder auch einfach Konsole) bekommt, steht zum Beispiel in diesem Rubyforen-Thread beschrieben. Ich schriebe das jetzt nocht nochmal auf, der Thread ist ausreichend gut. Alternativ kannst du dir auch die [wiki]FAQ#WieStarteIchSkripte[/wiki] ansehen, dort ist as auch noch haarklein erklärt wie man sie einrichtet.
Die Shell ist vor allem auch zum Programmieren ein sehr nürliches Ding. Ich habe dort den verbesserten Interpreter IPython laufen, Bazaar, sogar mein Editor läuft in der Shell, weil es für mich einfach praktischer ist, als einen grafischen Editor ala IDLE zu verwenden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ach du meintest die CMD. So, jetzt stehe ich aber vor dem nächsten Problem. Es werden zwar einige Schritte wie "running install" angezeigt, nach dem Schritt "writing dependency_links to mechanize (...)" kommt plötzlich ein error, welcher sich darüber beklagt, dass eine unwahrscheinlich lange Datei in einem Spiele-ordner (!), um genau zu sein Battlefield 2142, nicht vorhanden sei. Meine Frage ist jetzt, was hat diese Datei in diesem Spiele-ordner mit mechanize zu tun? Ich hänge einen Screen an:
[/url]

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Wow, gute Frage. Scheint ein sehr, sehr seltsamer Fehler in ``setuptools`` zu sein. Dann machen wir es anders, manuell. Auch kein Problem.Xabyt hat geschrieben:nach dem Schritt "writing dependency_links to mechanize (...)" kommt plötzlich ein error, welcher sich darüber beklagt, dass eine unwahrscheinlich lange Datei in einem Spiele-ordner (!), um genau zu sein Battlefield 2142, nicht vorhanden sei. Meine Frage ist jetzt, was hat diese Datei in diesem Spiele-ordner mit mechanize zu tun?
Im ``mechanize-0.1.6b``-Ordner gibt es einen Ordner Namens ``mechanize``. Diesen kopierst du in den ``site-packages``-Ordner deiner Python-Installation (der ist normalerweise immer in DER_ORDNER_WO_PYTHON_INSTALLIERT_IST\Lib\site-packages).
Damit sollte dann auch ein ``import mechanize`` klappen.
(P.S. Ich komme aus einer Zeit wo das was zu CMD nennst noch command.com hieß. Inzwischen nutze ich aber eher FreeCOM und bash)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich scheine verflucht zu sein: Nun beschwert sich IDLE, dass das Modul Clientform nicht da ist, hab es runtergeladen, wieder mit CMD versucht, klappt wieder nicht. Wie mache ich es diesmal auf die "altmodische Weise"? Ich habe den Link von Gerold benutzt.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Habe ich doch geschriebenXabyt hat geschrieben:Wie mache ich es diesmal auf die "altmodische Weise"?

Ah, irgendwie habe ich das Gefühl, dass Battlefield 2142 seinen eigenen Python-Interpreter mitbringt. Kann das sein?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice