Seite 1 von 1

Hilfe beim Login mit Python

Verfasst: Donnerstag 19. November 2015, 16:30
von IGnoXX
Hallo zusammen!
Ich möchte gerne ein skript schreiben welches sich auf eine Website einloggt , den Server auswählt und anschließend den Premiumpunkte wert ausliest und es ausgibt oder in eine Datei Speichert.

So nach etwas suche bin ich auf machnize gestoßen. Dieses modul eigent sich gut für mein Vorhaben(einige werden es sicher kennen ;) ).

Ich bin nun soweit gekommen dass ich die Website aufrufe(http://www.die-staemme.de) , das formular zum login ausfülle, und anschließendauf Login(submit) klicke.

Dannach kommt eine Serverauswahl. Und das ist mein knackpunkt.. Da ist ein Button mit dem Server namen drauf und ruft eine JS funktion auf nach dem klicken .

Ich hab bereits gelesen das mechanize kein JS unterstützt und man selber den link(oder was auch immer) finden muss um auf die seite zu kommen..

Hat einer von euch eine idee wie ich das lösen kann? :?

Skript:

Code: Alles auswählen

import mechanize
import cookielib
from bs4 import BeautifulSoup as bs

#Browser
br = mechanize.Browser(factory=mechanize.RobustFactory())

#Cookie Jar
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

#Browser Options
br.set_handle_equiv(True)
#br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)

# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)


# User-Agent (this is cheating, ok?)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

USERNAME = 'IGnoXX'
PASSWORD = '12345'

FORM_NAME = 'login_form'
FORM_USER = 'user'
FORM_PASS = 'password'

website = br.open("https://www.die-staemme.de")
website_html = website.read()

#Select the Form
br.select_form(nr=0)

#Let's login
br.form[FORM_USER] = USERNAME
br.form[FORM_PASS] = PASSWORD
website = br.submit() #Press Login
print website.read()
^Sorry das der gesamte code grün ist.. ich weiß nicht wie man es ganz normal anzeigen lässt..

Danke im Vorraus!
-IGnoXX

Re: Hilfe beim Login mit Python

Verfasst: Donnerstag 19. November 2015, 16:46
von BlackJack
@IGnoXX: Du müsstest Dir mit einem Browser und entsprechenden Plugins (oder bereits eingebauten Funktionen) herausfinden was da passiert wenn man auf die Schaltfläche klickt. Ich verwende Firefox und das Firebug-Plugin für so etwas. Da sieht man dann das nur ein bereits auf der Webseite vorhandenes aber nicht angezeigtes <div> aktiviert wird. Und wenn man dort hinein schaut dann sieht man ein Formular für den konkreten Server, und auch wieder JavaScript. Ich glaube hier würde ich auf mechanize verzichten und lieber `requests` für die Kommunikation mit den Servern verwenden und mir die Kommunikation zwischen Browser und Server anschauen und das manuell nachbauen.

Also wenn ich denn unbedingt gegen die Geschäftsbedingungen von einer Webseite verstossen wollen würde…

Re: Hilfe beim Login mit Python

Verfasst: Samstag 21. November 2015, 14:19
von IGnoXX
Danke, werde mir mal requests anschauen in python :)

Re: Hilfe beim Login mit Python

Verfasst: Montag 23. November 2015, 17:41
von IGnoXX
Ok hab alles hinbekommen was ich wolte :D Hab dazu die request libary benutzt :)

Danke nochmal ;)