我尝试登录this site(现已死链接)。我提供了我的用户名和密码(这个网站并不重要),以便您可以自己尝试,并测试它是否真的有效。
有两个问题:
我使用此代码并且它为我提供了HTTP 200,但它并没有让我登录。我需要使用我的用户名和密码登录并获取下一页HTML。
import requests
>>> url = 'http://dining.ut.ac.ir/login'
>>> signin = {'username' : '810192485' , 'password' : '0923122265' , '_csrf_token' : '14e993b708cbe5f8f7b356b6944bff98'}
>>> x = requests.post(url, data = signin)
>>> x
<Response [200]>
登录页面HTML的登录部分:
<form action="/login" method="post">
<input type="hidden" name="signin[_csrf_token]" value="14e993b708cbe5f8f7b356b6944bff98" id="signin__csrf_token" />
<table id="loginDatagrid">
<tr>
<td width="300" align="left" valign="bottom"><label style="position:relative;left:5px;bottom:5px;" for="signin_username">نام کاربري (شماره دانشجویی/پرسنلی) : </label></td>
<td width="100" align="right" valign="bottom"><div class="loginboxdiv"><input class="loginbox" type="text" name="signin[username]" id="signin_username" class="text" size="5" onclick='inputSelected("signin_username")'/></div> </td>
<td width="45"> </td>
</tr>
<tr>
<td width="300" align="left" valign="top"><label style="position:relative;left:5px;top:5px; "for="signin_password">رمز عبور (کد ملی): </label></td>
<td width="100" align="right" valign="top"><div class="loginboxdiv"><input class="loginbox" type="password" name="signin[password]" id="signin_password" class="text" onclick='inputSelected("signin_password")'/> </div>
</td>
<td width="45" align="right" valign="top"> <input SRC="images/submit_form.jpg" type="image" value="" /> </td>
</tr>
</table>
</form >
答案 0 :(得分:2)
您未发布表单所需的字段。从HTML中可以看出,所有表单字段都是Rails / PHP哈希样式:您需要使用相同的格式。
signin = {'signin[username]' : '810192485' , 'signin[password]' : '0923122265' , 'signing[_csrf_token]' : '14e993b708cbe5f8f7b356b6944bff98'}