2017-10-23 2 views
1

Ich versuche mich bei PowerSchool anzumelden, um meine Noten zu kratzen. Immer wenn ich den Code ausführe gibt es mir den Login-Seiten HTML-Code anstelle des gesicherten HTML-Codes.Powerschool Anmeldeformular Daten

Frage 1: Wie bekomme ich den Wert der 3 Felder, die im obigen Code mit "this changes" geändert werden, und schicke sie an den aktuellen Beitrag?

Frage 2: Muss ich etwas in den Code für mein Passwort einfügen, das jeden Beitrag hashed.

https://ps.lphs.net/public/home.html < --- Link zur Login-Seite für HTML-Code.

Picture of form data on chrome

import requests 


payload = { 
    'pstoken': 'this changes', 
    'contextData': 'this changes', 
    'dbpw': 'this changes', 
    'translator_username': '', 
    'translator_password': '', 
    'translator_ldappassword': '', 
    'serviceName':' PS Parent Portal', 
    'serviceTicket':'', 
    'pcasServerUrl':' /', 
    'credentialType':'User Id and Password Credential', 
    'account':'200276', 
    'pw':'my password', 
    'translatorpw':'' 
} 

head = {'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3180.0 Safari/537.36'} 

with requests.Session() as s: 
    p = s.post('https://ps.lphs.net/public/', data=payload, headers=head) 

    r = s.get('https://ps.lphs.net/guardian/home.html') 
    print(r.text) 

EDIT 1:

s.headers = { 
     'User-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3180.0 Safari/537.36'} 

    p = s.get('https://ps.lphs.net/guardian/home.html') 
    print(p.text) 

    r = s.post('https://ps.lphs.net/guardian/home.html', data=payload, 
       headers={'Content-Type': 'application/x-www-form-urlencoded', 
         'Referer': 'https://ps.lphs.net/public/home.html'}) 

    print(r.text) 

Antwort

0

dieses Geben Sie ein Schuss. Es sollten Sie die gültige Antwort zu holen.

import requests 

payload = { 
    'pstoken': 'this changes', 
    'contextData': 'this changes', 
    'dbpw': 'this changes', 
    'translator_username': '', 
    'translator_password': '', 
    'translator_ldappassword': '', 
    'serviceName':' PS Parent Portal', 
    'serviceTicket':'', 
    'pcasServerUrl':' /', 
    'credentialType':'User Id and Password Credential', 
    'account':'200276', 
    'pw':'my password', 
    'translatorpw':'' 
} 

with requests.Session() as s: 
    s.headers={'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3180.0 Safari/537.36'} 
    r = s.post('https://ps.lphs.net/guardian/home.html',data=payload, 
       headers={'Content-Type': 'application/x-www-form-urlencoded', 
         'Referer':'https://ps.lphs.net/public/home.html'}) 
    print(r.text) 

Btw, ändern Sie den Parameter in payload (falls erforderlich), um in geloggt

+0

Es hat nicht funktioniert, aber ich denke, seine weil die pstoken, contextData, und dbpw Felder ändern jede Sitzung. Also, wie würde ich gehen, um diese Felder zu bekommen und Nutzlast zu ändern, bevor ich die Nutzlastvariable nenne? –

+0

Ich begann mit der Verwendung der p var, um zu versuchen, die Seite zu analysieren, um die contextData und pstoken zu bekommen, damit ich sie vor dem Posten in die Payload setzen konnte. Als ich p und r druckte, bekam ich verschiedene Strings für die Felder. Der Code ist oben in EDIT 1 gezeigt: –