sto tentando di accedere al sito Web http://www.magickartenmarkt.de e di eseguire alcune analisi nell'area membro (https://www.magickartenmarkt.de/?mainPage=showWants). Ho visto altri esempi per questo, ma non capisco perché i miei approcci non hanno funzionato. Ho identificato le forme giuste per il primo approccio, ma non è chiaro se ha funzionato. Nel secondo approccio la pagina web di returing mi mostra che non ho accesso all'area membri.Come accedere a un sito Web con python e mechanize
Sarei felice per qualsiasi aiuto.
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()
Grazie per il consiglio! Esso funziona magicamente. Devo preoccuparmi dei cookie con questa implementazione? Trovato anche 'browser.set_handle_refresh (mechanize._http.HTTPRefreshProcessor(), max_time = 1)' questo. Significa che il browser (oggetto?) Aggiornerà le pagine web ogni secondo? – Rappel
Il browser salverà i cookie nella propria sessione (vengono persi allo scadere dello script o non si utilizza più quell'istanza particolare). TUTTAVIA, se si desidera che questi cookie siano disponibili per sessioni future (ad esempio in future chiamate a uno script per tutto il tempo in cui i cookie non sono scaduti), sarà necessario utilizzare cookielib, http://docs.python.org /2/library/cookielib.html – Ford
Credo che sia 'browser = mechanize.Browser()' –