Sto tentando di accedere al sito Web della mia scuola tramite Richieste, ma non oltrepassare la pagina di accesso e non restituire le informazioni nelle pagine protette da password. Tutto ciò che fa è restituire l'HTML della pagina di accesso. Twill non funzionerebbe in quanto questa pagina richiede javascript. . La roba login HTML èAccesso a Python in un sito Web con modulo javascript
<!--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-->
Ho controllato this answer
mio codice attuale è
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
ma io non riesco a accedere alla pagina. La mia domanda è che suppongo di avere un carico utile per premere il pulsante "invia" o qualcosa del genere? Ho provato 'action' : 'login'
e cose del genere ma nessuna funziona. Inoltre, non ho bisogno di un translatorpw
quindi dovrei scrivere 'translatorpw': ''
o semplicemente ignorarlo? Ovviamente ho inserito il mio vero nome utente/password nel programma sul mio portatile. Grazie in anticipo!
Modifica: ho appena usato il selenio e ha funzionato molto facilmente.
Non sono sicuro, ma il tuo programma potrebbe comportarsi come un browser. Dovrai esaminare la pagina, esaminare tutti i campi di 'p' e cercare di scoprire cosa si aspetta il server. C'è un codice javascript sulla pagina con commenti sulle richieste POST. Dovrai prendere in considerazione tutto ciò. – RobertL
Sì, ho cercato nel codice HTML restituito dal mio codice e non ha nulla che assomigli a quello nell'altra pagina, quindi sono confuso anche su questo. – bolkols