2014-09-11 4 views
1

Я пытаюсь войти в this site (теперь мертвая ссылка). Я предоставляю свое имя пользователя и пароль (этот сайт не важен), чтобы вы могли попробовать его самостоятельно и проверить, действительно ли он работает или нет.Войти на удаленный сайт

Есть 2 проблемы:

  1. Как эту страницу ручки CSRF? Он не сохраняет его ни в одном cookie-файле. Как это получилось?
  2. Я использую этот код, и он дает мне 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"> &nbsp;</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

'Войти success' обычно должны привести кодом 302 HTTP для' redirect' после входа в систему. –

+0

Спасибо Aron! но проблема остается: D! @AronYsidoro –

+2

страница, которую вы отправили, дает 404 – gosom

ответ

2

Вы не размещая поля формы ожидает. Как видно из HTML, все поля формы находятся в стиле хэша Rails/PHP: вам нужно использовать тот же формат.

signin = {'signin[username]' : '810192485' , 'signin[password]' : '0923122265' , 'signing[_csrf_token]' :  '14e993b708cbe5f8f7b356b6944bff98'} 
+0

'>>> signin {'подпись [_csrf_token]': '98a38792011d13f46a228854deb43bf4', 'signin [имя пользователя]': '810192485', 'signin [password]': '0923122265'} >>> x = request.post (url, data = signin) >>> x <Ответ [200]> ' это тоже не работает :( Это работает для вас? –