def get_Auth():
USERNAME = User.get("1.0", END)
PASSWORD = Pass.get("1.0", END)
print(USERNAME)
print(PASSWORD)
url = 'https://ps.lphs.net/public/home.html'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.92 Safari/537.36 Vivaldi/1.6.689.34'}
g = requests.get(url)
soup = BeautifulSoup(g.content)
'Find The Values'
PSTOKEN = None
CONTEXTDATA = None
for input in soup.find_all('input')[0:1]:
PSTOKEN = input.get('value')
print(PSTOKEN)
for input in soup.find_all('input')[1:2]:
CONTEXTDATA = input.get('value')
print(CONTEXTDATA)
payload = {
'pstoken': PSTOKEN,
'contextData': CONTEXTDATA,
'dbpw': '',
'translator_username': '',
'translator_password': '',
'translator_ldappassword': '',
'returnUrl': 'https://ps.lphs.net/guardian/home.html',
'serviceName': 'PS Parent Portal',
'serviceTicket': '',
'pcasServerUrl': '\ /',
'credentialType': 'User Id and Password Credential',
'account': USERNAME,
'pw': PASSWORD,
'translatorpw': ''
}
r = requests.post(soup, data=payload)
print(r)
私はPowerSchoolにログオンし、ログインに必要なページからグレードを削っています。私はビデオの後にビデオを見ていて、なぜそれがうまくいかないのか理解できません。私は自分のユーザー名とパスワードを要求するTkinterウィンドウを持っていて、それを使ってそのWebサイトにログオンします。しかし、私が実行すると、ログインページのソースコードが得られます。以下は、inspect要素の下にあるNetworkタブの画像です。PowerschoolにPythonリクエストを使用してログイン
私は今しばらくの間、このに見てきた、ここで間違っているかわからないんだけど。 ありがとうございます!私がテストにアカウントを持っていないが、複数の物事はあなたの現在のアプローチで間違っている
ウェブページはあなたが考えるより複雑です。まず、 'post()'は 'pstoken'、' contexDat'、 'account'、' pw'の中で異なる値を必要とするかもしれません。ログインフォームで 'get()'をして、HTMLで正しい値を見つけなければなりません。 2番目:サーバはクッキーのような他の要素をチェックするかもしれません( 'requests.Session()')やヘッダ(主に 'User-Agent')を使うのが良いでしょう。 – furas
とJavaScriptを使用して、フォームを制御するためにいくつかのデータをハッシュ/計算することができます。 'pw'フィールドにハッシュされたパスワードを送ることができます。 – furas