आप प्रपत्र की छिपी क्षेत्रों भूल रहे हैं धन्यवाद:
<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>
ताकि आप अद्यतन करना चाहते हो सकता है:
acc_pwd = {'login':'Log In',
'email':'username',
'password':'pwd',
'disableThirdPartyLogin':'false',
'loginRedirect':'',
'includeWorkflow':'',
'login':'Log In'
}
जो द्वारा जाँच हो सकता है उनके सर्विस। हालांकि, disableThirdPartyLogin
फ़ील्ड का नाम दिया गया है, तो मुझे आश्चर्य है कि क्या कोई गंदे जावास्क्रिप्ट फ़ॉर्म की सबमिट कार्रवाई से बाध्य नहीं है जो वास्तव में पोस्ट करने से पहले एक मूल्य जोड़ता है। आप इसे डेवलपर टूल और POST मानों के विश्लेषण के साथ जांचना चाहेंगे।
परीक्षण है कि लग रहा है, हालांकि जावास्क्रिप्ट कुछ मान, जो कुकीज़ से हो सकता है कहते हैं ऐसा नहीं होता,:
__fp w686jv_O1ZZztQ7FkK21Ry2MI7JbqWTf
_sourcePage tJvTQfA5dkvGrJMFkFsv6XbX0f6OV1Ndj1zeGcz7OKzA3gkNXMXGnj27D-H9WXS-
disableThirdPartyLogin false
email [email protected]
includeWorkflow
login Log In
password aeou
redirect
यहाँ इस अनुरोध का उपयोग कर रही पर मेरी ले (जो urllib तुलना में एक बेहतर एपीआई है है ;-))
>>> import requests
>>> import cookielib
>>> jar = cookielib.CookieJar()
>>> login_url = 'https://www.fitbit.com/login'
>>> acc_pwd = {'login':'Log In',
... 'email':'username',
... 'password':'pwd',
... 'disableThirdPartyLogin':'false',
... 'loginRedirect':'',
... 'includeWorkflow':'',
... 'login':'Log In'
... }
>>> r = requests.get(login_url, cookies=jar)
>>> r = requests.post(login_url, cookies=jar, data=acc_pwd)
और अपनी कुकीज़ जार भरने के लिए पहले लॉग इन पेज पर जाने के लिए मत भूलना!
अंत में, मैं आपकी मदद नहीं कर सकता, क्योंकि मेरे पास fitbit.com पर एक वैध खाता नहीं है और मुझे इसकी आवश्यकता नहीं है। इसलिए मैं केवल अपने परीक्षणों के लिए लॉगिन विफलता पृष्ठ पर जा सकता हूं।
संपादित करें:
उत्पादन पार्स करने के लिए है, तो आप उपयोग कर सकते हैं:
>>> from lxml import etree
>>> p = etree.HTML(r.text)
उदाहरण के लिए त्रुटि संदेश प्राप्त करने के लिए:
>>> p.xpath('//ul[@class="errorList"]/li/text()')
['Lutilisateur nexiste pas ou le mot de passe est incorrect.']
संसाधन:
और वे दोनों pypi पर:
pip install lxml requests
HTH
धन्यवाद! लेकिन अगले के लिए, मैं आर का उपयोग कैसे कर सकता हूं? मैंने पहले कभी अनुरोध पुस्तकालय का उपयोग नहीं किया है। – MacSanhe
आप कुकी जार (या आप 'jar' का उपयोग कर सकते हैं) प्राप्त करने के लिए स्टेटस कोड,' r.cookies' प्राप्त करने के लिए 'r.status_code' का उपयोग कर सकते हैं, आप 'r.text' का उपयोग कर सकते हैं और इसे' lxml' या परिणामी पृष्ठ को पार्स करने में आपकी सहायता के लिए 'सुंदर सूप'। Http://python-requests.org पर एक नज़र डालें, यह सुनिश्चित करने के लिए कि लाइब्रेरी कितनी महान है :-) – zmo
मेरा मतलब है कि मैं आमतौर पर क्या करता हूं: 1. opener.open (login_url, डेटा) 2. नियमित रूप से urllib2.urlopen .request (balabalabala) तो अगर मैं लॉगिन करने के लिए अनुरोध का उपयोग करता हूं, तो क्या इसका मतलब है कि मुझे यूआरएल से एचटीएमएल खींचने के लिए अनुरोध का उपयोग करना है? मैंने अपने नियमित दूसरे चरण की कोशिश की, यह काम नहीं करता है। – MacSanhe