दिलचस्प पोस्ट
कैसे स्क्लिट में छवि को ब्लॉब के रूप में संग्रहीत करना और इसे कैसे प्राप्त करना है? आईओएस स्विफ्ट में एक छवि में मैं टेक्स्ट कैसे जोड़ूं? TypeScript निजी सदस्य प्रत्येक सूची तत्व पर ईटी () कॉल कॉल करें? फ़ंक्शन पॉइंटर्स और फ़ंक्शन का पता पता कैसे एक समारोह परिभाषित किया जाता है? HTML फ़ाइल को कनवर्ट करें? कई विधानसभाओं को एक में कैसे मर्ज करना है? एक उपयोगकर्ता के ब्राउज़र प्रदर्शित कर सकते हैं हर फ़ॉन्ट की सूची JSON.NET में deserialization के लिए इंटरफेस कास्टिंग वर्तमान चयनित आइटम को संरक्षित करते समय मूल्य के आधार पर एचटीएमएल के चयन के विकल्प को हल करने का सबसे कारगर तरीका क्या है? ऐनिमेशन को नष्ट किए बिना एनिमेटेड GIF फ़ाइल का आकार बदलें मुझे ईएस 6 आयात के लिए कुरकुरा ब्रेसिज़ का उपयोग कब करना चाहिए? जावा ईमेल टेम्पलेटिंग के लिए सुझाव? पहलू अनुपात की गणना करने के लिए एल्गोरिथ्म क्या है? मुझे एक आउटपुट की आवश्यकता है: 4: 3, 16: 9

Python के अनुरोध मॉड्यूल का उपयोग करके वेबसाइट पर "लॉग इन" कैसे करें?

मैं एक वेबसाइट पर लॉग इन करने का अनुरोध पोस्ट करने के लिए पायथन में अनुरोध मॉड्यूल का उपयोग करने की कोशिश कर रहा हूं, लेकिन यह वास्तव में काम नहीं कर रहा है मैं इस के लिए नया हूँ … तो मुझे पता चलेगा कि मुझे अपना उपयोगकर्ता नाम और पासवर्ड कुकीज़ या कुछ प्रकार की HTTP प्राधिकरण बनाने के लिए मुझे क्या चाहिए (??)

from pyquery import PyQuery import requests url = 'http://www.locationary.com/home/index2.jsp' 

तो अब, मुझे लगता है कि मैं "पोस्ट" और कुकीज का उपयोग करना चाहता हूं ….

 ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'} r = requests.post(url, cookies=ck) content = r.text q = PyQuery(content) title = q("title").text() print title 

मुझे लग रहा है कि मैं कुकिंग चीज गलत कर रहा हूं … मुझे नहीं पता।

अगर यह सही ढंग से लॉग इन नहीं करता है, तो होम पेज का शीर्षक "स्थानारी.कॉम" में आ जाना चाहिए और यदि ऐसा होता है, तो यह "होम पेज" होना चाहिए।

अगर आप मुझसे अनुरोध और कुकीज़ के बारे में कुछ चीजें समझा और मेरी मदद कर सकें, तो मैं इसकी सराहना करता हूं। : डी

धन्यवाद।

… यह अभी भी वास्तव में अभी तक काम नहीं किया है। ठीक है … तो इससे पहले कि आप प्रवेश करें इससे पहले मुख पृष्ठ HTML कहते हैं:

 </td><td><img src="http://img.hiwab.com/python/txt_email.gif"> </td> <td><input class="Data_Entry_Field_Login" type="text" name="inUserName" id="inUserName" size="25"></td> <td><img src="http://img.hiwab.com/python/txt_password.gif"> </td> <td><input class="Data_Entry_Field_Login" type="password" name="inUserPass" id="inUserPass"></td> 

इसलिए मुझे लगता है कि मैं इसे सही कर रहा हूं, लेकिन अभी भी आउटपुट "स्थानारी"

दूसरा संपादित करें:

मैं लंबे समय तक लॉग इन रहना चाहता हूं और जब भी मैं उस डोमेन के अंतर्गत एक पृष्ठ का अनुरोध करता हूं, तो मैं चाहता हूं कि सामग्री को दिखाया जाए कि मैं लॉग-इन हुआ था।

वेब के समाधान से एकत्रित समाधान "Python के अनुरोध मॉड्यूल का उपयोग करके वेबसाइट पर "लॉग इन" कैसे करें?"

यदि आप चाहते हैं कि जानकारी आप लॉग इन के तुरंत बाद निर्देशित कर रहे हैं पृष्ठ पर है …

इसके बजाय अपने ck वैरिएबल payload कॉल करें, जैसे अजगर-अनुरोध डॉक्स में:

 payload = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'} url = 'http://www.locationary.com/home/index2.jsp' requests.post(url, data=payload) 

अन्यथा…

नीचे https://stackoverflow.com/a/17633072/111362 देखें

मुझे पता है कि आपको एक और हल मिल गया है, लेकिन मेरे जैसे उन लोगों के लिए जो इस प्रश्न को ढूंढते हैं, एक ही चीज़ की तलाश में हैं, इन्हें अनुरोध के साथ प्राप्त किया जा सकता है:

सबसे पहले, माक्र्स के रूप में, जानकारी के तीन टुकड़े प्राप्त करने के लिए लॉगिन फॉर्म के स्रोत की जांच करें – यूआरएल और यूजरनेम और पासवर्ड फ़ील्ड के नाम विशेषताओं के नाम पर यूआरएल उनके उदाहरण में, वे उपयोगकर्ता नाम और inUserPass हैं

एक बार आपको मिल जाने के बाद, आप एक requests.Session() उपयोग कर सकते हैं। requests.Session() उदाहरण के लिए लॉगिन यूआरएल को अपने लॉगिन विवरण के साथ एक पेलोड के रूप में पोस्ट करने का अनुरोध करें। सत्र आवृत्ति से अनुरोध करना मूल रूप से अनुरोधों के उपयोग के समान है, यह बस दृढ़ता से जोड़ता है, जिससे आप कुकीज को संग्रहीत और उपयोग कर सकते हैं आदि।

मान लें कि आपका लॉगिन प्रयास सफल था, आप साइट पर अधिक अनुरोध करने के लिए बस सत्र के उदाहरण का उपयोग कर सकते हैं। आपके द्वारा पहचान की जाने वाली कुकी अनुरोधों को प्राधिकृत करने के लिए उपयोग की जाएगी।

उदाहरण

 import requests # Fill in your details here to be posted to the login form. payload = { 'inUserName': 'username', 'inUserPass': 'password' } # Use 'with' to ensure the session context is closed after use. with requests.Session() as s: p = s.post('LOGIN_URL', data=payload) # print the html returned or something more intelligent to see if it's a successful login page. print p.text # An authorised request. r = s.get('A protected web page url') print r.text # etc... 

मुझे इसे सरल बनाने की कोशिश करें, मान लें कि साइट का यूआरएल http://example.com/ है और मान लें कि आपको उपयोगकर्ता नाम और पासवर्ड भरकर साइन अप करने की आवश्यकता है, इसलिए हम http: // उदाहरण के लिए लॉगिन पेज पर जाएं । com / login.php अब और इसे स्रोत कोड और कार्रवाई यूआरएल के लिए खोज के रूप में यह कुछ तरह के फार्म टैग में होगा

  <form name="loginform" method="post" action="userinfo.php"> 

अब userinfo.php को पूर्ण यूआरएल बनाने के लिए जो ' http://example.com/userinfo.php ' होगा, अब एक साधारण अजगर स्क्रिप्ट चलाएं।

 import requests url = 'http://example.com/userinfo.php' values = {'username': 'user', 'password': 'pass'} r = requests.post(url, data=values) print r.content 

मुझे आशा है कि यह किसी को कहीं किसी दिन मदद करता है

उपयोगकर्ता नामों <...name=username.../> और पासवर्ड <...name=password../> लिए वेबसाइटों पर प्रयुक्त इनपुट का नाम पता लगाएं और उन्हें नीचे की स्क्रिप्ट में बदलें। यूआरएल को वांछित साइट पर लॉग इन करने के लिए भी लॉग इन करें

login.py

 #!/usr/bin/env python import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(InsecureRequestWarning) payload = { 'username': 'user@email.com', 'password': 'blahblahsecretpassw0rd' } url = 'https://website.com/login.html' requests.post(url, data=payload, verify=False) 

disable_warnings(InsecureRequestWarning) SSL प्रमाणपत्रों के साथ साइटों में लॉग इन करने का प्रयास करते समय disable_warnings(InsecureRequestWarning) का उपयोग स्क्रिप्ट से किसी भी आउटपुट को मौन कर देगा।

अतिरिक्त:

यूनिक्स आधारित सिस्टम पर कमांड लाइन से इस स्क्रिप्ट को चलाने के लिए इसे एक निर्देशिका, यानी home/scripts और इस निर्देशिका को ~/.bash_profile या टर्मिनल द्वारा उपयोग की जाने वाली समान फ़ाइल में अपने पथ में जोड़ें।

 # Custom scripts export CUSTOM_SCRIPTS=home/scripts export PATH=$CUSTOM_SCRIPTS:$PATH 

फिर home/scripts/login.py इस अजगर की खोज के लिए एक लिंक home/scripts/login.py

 ln -s ~/home/scipts/login.py ~/home/scipts/login 

अपना टर्मिनल बंद करें, एक नया आरंभ करें, login चलाएं