Ich versuche, auf der Website http://www.magickartenmarkt.de einloggen und analysieren Sie im Member-Bereich (https://www.magickartenmarkt.de/?mainPage=showWants). Ich habe andere Beispiele dafür gesehen, aber ich verstehe nicht, warum meine Ansätze nicht funktionieren. Ich habe die richtigen Formen für den ersten Ansatz identifiziert, aber es ist nicht klar, ob es funktioniert hat. Im zweiten Ansatz zeigt mir die Returing-Webseite, dass ich keinen Zugriff auf den Mitgliederbereich habe.So loggen Sie sich auf eine Website mit Python und mechanisieren
Ich würde mich freuen für jede Hilfe.
import urllib2
import cookielib
import urllib
import requests
import mechanize
from mechanize._opener import urlopen
from mechanize._form import ParseResponse
USERNAME = 'Test'
PASSWORD = 'bla123'
URL = "http://www.magickartenmarkt.de"
# first approach
request = mechanize.Request(URL)
response = mechanize.urlopen(request)
forms = mechanize.ParseResponse(response, backwards_compat=False)
# I don't want to close?!
#response.close()
# Username and Password are stored in this form
form = forms[1]
form["username"] = USERNAME
form["userPassword"] = PASSWORD
#proof entering data has worked
user = form["username"] # a string, NOT a Control instance
print user
pw = form["userPassword"] # a string, NOT a Control instance
print pw
#is this the page where I will redirected after login?
print urlopen(form.click()).read()
#second approach
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'username' : USERNAME, 'userPassword': PASSWORD})
#login
response_web = opener.open(URL, login_data)
#did it work? for me not....
resp = opener.open('https://www.magickartenmarkt.de/?mainPage=showWants')
print resp.read()
Vielen Dank für den Hinweis! Es wirkt wie ein Zauber. Muss ich mich bei dieser Implementierung um Cookies kümmern? Auch gefunden 'browser.set_handle_refresh (mechanize._http.HTTPRefreshProcessor(), max_time = 1)' dies. Bedeutet das, dass der Browser (Objekt?) Die Webseiten jede Sekunde aktualisiert? – Rappel
Der Browser speichert die Cookies in seiner eigenen Sitzung (sie gehen verloren, sobald das Skript beendet wird oder Sie diese bestimmte Instanz nicht mehr verwenden). Wenn Sie jedoch möchten, dass diese Cookies für zukünftige Sitzungen verfügbar sind (zB bei zukünftigen Aufrufen eines Skripts, solange die Cookies nicht abgelaufen sind), müssen Sie cookielib, http://docs.python.org, verwenden /2/library/cookielib.html – Ford
Ich glaube, es ist 'browser = mechanize.Browser()' –