Einloggen mit Session-ID

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Xabyt
User
Beiträge: 32
Registriert: Montag 30. April 2007, 14:05

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?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Xabyt hat geschrieben:Welchen inhalt sollte denn besagtes hidden-field haben?
Den gleichen den der Browser auch schicken würde. Welcher das ist, musst du in der Form schauen.
Xabyt hat geschrieben:Und wie überprüfe ich was die Header übermitteln?
Auf ``print einbot1.headers`` zu kommen ist wirklich nicht schwer, oder?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Xabyt
User
Beiträge: 32
Registriert: Montag 30. April 2007, 14:05

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:

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
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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Xabyt hat geschrieben:

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
Was kann ich daraus schließen?
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 bewirkt die Transfer-Encoding-Eigenschaft "chunked"?
Ist auf der Seite HTTP/1.1 Transfer-Encoding beschrieben. Ich denke nicht, dass du dich um das Transfer-Encoding kümmern musst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
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":

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()
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Xabyt
User
Beiträge: 32
Registriert: Montag 30. April 2007, 14:05

@ 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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Xabyt hat geschrieben:ich habe es bereits über die SETUP.py probiert, scheint aber nicht zu gehen.
``python setup.py install``
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Xabyt
User
Beiträge: 32
Registriert: Montag 30. April 2007, 14:05

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.

Gruß,
Felix
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Xabyt hat geschrieben:``python C:\mechanize-0.1.6b\mechanize-0.1.6b\setup.py install``
Hallo Felix!

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
Hast du das wirklich in der Shell eingegeben oder im Python-Interpreter? (Und wenn du dich wunderst... es gibt Leute, die machen wirklich sowas)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
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:

Code: Alles auswählen

easy_install mechanize
Damit wird dir "mechanize" installiert.

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
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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gerold hat geschrieben:Alle Module, für die es eine "*.egg"-Datei gibt, lassen sich damit installieren.
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Xabyt
User
Beiträge: 32
Registriert: Montag 30. April 2007, 14:05

Hallo,
es wird folgende Fehlermeldung ausgegeben:

Code: Alles auswählen

>>> C:\mechanize-0.1.6b\mechanize-0.1.6b\setup.py install
SyntaxError: invalid syntax
Der Doppelpunkt wird rot hinterlegt.
Woran kann das liegen?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Xabyt hat geschrieben:Woran kann das liegen?
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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Xabyt
User
Beiträge: 32
Registriert: Montag 30. April 2007, 14:05

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!
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Xabyt hat geschrieben:Das ist mir ja ein wenig peinlich, nur ist es irreführend, dass diese Anwendung doch als "Python Shell" bezeichnet wird.
Stimmt. Das ist die Interaktive Python Shell, also der Interpreter.
Xabyt hat geschrieben:Diese Anwendung wird in meinem Buch als Python-Shell bezeichnet.
Ich meinte aber die System-Shell, also das was es schon viel, viel länger als Python gibt.

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
Xabyt
User
Beiträge: 32
Registriert: Montag 30. April 2007, 14:05

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:

Bild[/url]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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?
Wow, gute Frage. Scheint ein sehr, sehr seltsamer Fehler in ``setuptools`` zu sein. Dann machen wir es anders, manuell. Auch kein Problem.
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
Xabyt
User
Beiträge: 32
Registriert: Montag 30. April 2007, 14:05

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Xabyt hat geschrieben:Wie mache ich es diesmal auf die "altmodische Weise"?
Habe ich doch geschrieben :?:

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
Antworten