2015-11-20 6 views
5

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

<!--box content--> 

<div id="noscript" class="feedback-alert"> To sign in to PowerSchool, you must use a browser that supports and has JavaScript enabled. </div> 
<fieldset id="login-inputs" class="hide"> 

    <div> 
      <label>Username</label> 
      <input type="text" id="fieldAccount" name="account" value="" size="39" /> 
    </div> 
    <div> 
      <label>Password</label> 
      <input type="password" name="pw" value="" size="39" /><div id="login-help"><a href="/public/account_recovery_begin.html">Having trouble signing in?</a></div> 
    </div> 
    <div id="translatorInput"> 
      <label>Translator Sign In</label> 
      <input type="password" name="translatorpw" value="" size="39" /> 
    </div> 
    <div class="button-row"> 
    <button type="submit" id="btn-enter" title="Sign In To PowerSchool Parent Access" value="Enter" border="0" >Sign In</button> 
    </div> 
</fieldset> 

    <!-- box content--> 

मैं this answer देख लिया है है

मेरे वर्तमान कोड

import requests 
payload = { 
    'account': 'username', 
    'pw': 'password' 
} 
with requests.Session() as s: 
    p = s.post('https://powerschool.-/public/home.html', data=payload) 
    print p.text 

    r = s.get('https://powerschool.-/guardian/studentsched.html') 
    print r.text 

है, लेकिन मैं पृष्ठ में लॉग इन नहीं कर पा रहे। मेरा सवाल है क्या मुझे लगता है कि 'सबमिट' बटन या कुछ दबाए रखने के लिए पेलोड होना है? मैंने 'action' : 'login' और इस तरह की चीजों की कोशिश की है लेकिन इनमें से कोई भी काम नहीं करता है। इसके अलावा, मुझे translatorpw की आवश्यकता नहीं है, तो क्या मुझे 'translatorpw': '' लिखना चाहिए या बस इसे अनदेखा करना चाहिए? जाहिर है, मैंने अपने लैपटॉप पर प्रोग्राम में अपना असली उपयोगकर्ता नाम/पासवर्ड डाला। अग्रिम में धन्यवाद!

संपादित करें: मैंने अभी सेलेनियम का उपयोग किया है और यह बहुत आसानी से काम करता है।

+0

मुझे यकीन नहीं है लेकिन आपके प्रोग्राम को ब्राउज़र की तरह और भी कार्य करना पड़ सकता है। आपको पृष्ठ की जांच करनी होगी, 'पी' के सभी क्षेत्रों की जांच करनी होगी, और यह पता लगाने का प्रयास करें कि सर्वर क्या अपेक्षा करता है। POST अनुरोधों के बारे में टिप्पणियों के साथ पृष्ठ पर जावास्क्रिप्ट कोड है। आपको इसे सब कुछ ध्यान में रखना होगा। – RobertL

+0

हां, मैंने अपने कोड द्वारा एचटीएमएल में वापस देखा और इसमें कुछ भी नहीं है जो दूसरे पृष्ठ में दिखता है, इसलिए मैं भी इसके बारे में उलझन में हूं। – bolkols

उत्तर

0

कुछ साइटों के रूप में कस्टम हेडर स्थापित करने की कोशिश करें डिफ़ॉल्ट अनुरोध एजेंट अस्वीकार

import requests 

    payload = { 
    'account': 'username', 
    'pw': 'password' 
    } 

    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'}  

with requests.Session() as s: 
    p = s.post('https://powerschool.-/public/home.html', data=payload, headers=headers) 
    print p.text 

    r = s.get('https://powerschool.-/guardian/studentsched.html', headers=headers) 
    print r.text 

चेक अगर कोई अतिरिक्त पैरामीटर, अपनी पोस्ट अनुरोध के साथ भेज दिया जा रहा है, तो तो भी पेलोड में भेज रहे हैं।

संबंधित मुद्दे