Sie die verborgenen Felder des Formulars zu vergessen:
<form id="loginForm" class="validate-enabled failure form" method="post" action="https://www.fitbit.com/login" name="login">
<input type="hidden" value="Log In" name="login">
<input type="hidden" value="" name="includeWorkflow">
<input id="loginRedirect" type="hidden" value="" name="redirect">
<input id="disableThirdPartyLogin" type="hidden" value="false" name="disableThirdPartyLogin">
<input class="field email" type="text" tabindex="23" name="email" placeholder="E-mail">
<input class="field password" type="password" tabindex="24" name="password" placeholder="Mot de passe">
</form>
so können Sie aktualisieren:
acc_pwd = {'login':'Log In',
'email':'username',
'password':'pwd',
'disableThirdPartyLogin':'false',
'loginRedirect':'',
'includeWorkflow':'',
'login':'Log In'
}
, die von ihrer aufgegebenen bekommen könnten Bedienung. Obwohl ich den Namen des Feldes disableThirdPartyLogin
habe, frage ich mich, ob es kein schmutziges Javascript gibt, das an die Sendeaktion des Formulars gebunden ist, die tatsächlich einen Wert hinzufügt, bevor der POST tatsächlich ausgeführt wird. Möglicherweise möchten Sie dies mit den analysierten Entwicklerwerkzeugen und POST-Werten überprüfen.
Testing, der es nicht sieht, wenn die Javascript einige Werte addiert, die von Cookies sein kann:
__fp w686jv_O1ZZztQ7FkK21Ry2MI7JbqWTf
_sourcePage tJvTQfA5dkvGrJMFkFsv6XbX0f6OV1Ndj1zeGcz7OKzA3gkNXMXGnj27D-H9WXS-
disableThirdPartyLogin false
email [email protected]
includeWorkflow
login Log In
password aeou
redirect
hier ist mein nehmen dies mit Anfragen zu tun (was eine bessere API als urllib hat ;-))
und vergessen Sie nicht, zuerst auf die Login-Seite mit einem bekommen, um Ihre Cookies jar in füllen!
Endlich kann ich Ihnen nicht weiter helfen, da ich kein gültiges Konto bei fitbit.com habe und ich keins brauche/will. So kann ich nur auf die Login-Fehler-Seite für meine Tests gelangen.
edit:
die Ausgabe zu analysieren, dann können Sie verwenden:
>>> from lxml import etree
>>> p = etree.HTML(r.text)
zum Beispiel die Fehlermeldungen zu erhalten:
>>> p.xpath('//ul[@class="errorList"]/li/text()')
['Lutilisateur nexiste pas ou le mot de passe est incorrect.']
Ressourcen:
und sie beide auf pypi:
pip install lxml requests
HTH
Vielen Dank! Aber für den nächsten, wie kann ich r nutzen? Ich habe die Anforderungsbibliothek noch nie zuvor verwendet. – MacSanhe
können Sie 'r.status_code' verwenden, um den Statuscode zu erhalten,' r.cookies', um den Cookie-Jar zu erhalten (oder Sie können 'jar' verwenden), Sie können' r.text' verwenden und an 'lxml' übergeben oder 'BeautifulSoup', um Ihnen beim Parsen der resultierenden Seite zu helfen. Schau dir http://python-requests.org an, um dich davon zu überzeugen, wie toll diese Bibliothek ist :-) – zmo
Ich meine, was ich normalerweise mache ist: 1. opener.open (login_url, data) 2. regulär urllib2.urlopen .request (balabalabala) Also, wenn ich eine Anfrage zum Login verwende, bedeutet das, dass ich eine Anfrage verwenden muss, um HTML aus der URL herauszuholen? Ich habe meinen regulären zweiten Schritt versucht, es funktioniert nicht. – MacSanhe