Python使用javascript表单登录网站

2024-04-20 10:22:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用请求登录我学校的网站,但它无法通过登录页面,也不会返回密码保护页面中的内容。它所做的只是返回登录页面的HTML。Twill不能工作,因为这个页面需要javascript。HTML登录的内容是

<!--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

我现在的代码是

^{pr2}$

但我似乎无法登录页面。我的问题是我是否应该有一个有效载荷来按下“提交”按钮或其他什么?我试过'action' : 'login'之类的东西,但都没用。另外,我不需要translatorpw,所以我应该写'translatorpw': ''还是忽略它?很明显,我把我的真实用户名/密码放在笔记本电脑上的程序中。提前谢谢!在

编辑:我刚用了硒,而且效果很好。在


Tags: nameindividinputsizevaluetype
1条回答
网友
1楼 · 发布于 2024-04-20 10:22:43

尝试将自定义标头设置为某些站点拒绝默认请求代理

    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

检查是否有任何附加的参数正在与您的post请求一起发送,如果有的话,也在有效负载中发送它。在

相关问题 更多 >