2014-01-24 2 views
0

У меня есть эта форма, но я не уверен, как создать полезную нагрузку, которая сделает это правильно.Вход на сайт с запросами

<form method="post" action="/login" name="loginform" id="loginForm"> 
    <fieldset id="fs"> 
     <label for="username">Username: 
     <input type="text" id="username" name="username" /> 
     </label> 

     <label for="password">Password: 
     <input type="password" id="password" name="password" /> 
     </label> 

     <input type="hidden" name="act" value="login" /> 
     <input name="submit" type="submit" id="submit" value="Login" /> 
    </fieldset> 
</form> 

Я пытался делать payload = {"username":"blah","password":"blah"}; r=requests.post(url, data=payload), но я не получил ответа я ожидал; а именно, r.text не имеет ожидаемой строки «Login failed». Но когда я заполняю форму и пытаюсь войти в систему в первый раз через браузер, это указывает на то, что это был мой второй неудачный логин.

Веб-сайт, на котором я играю, в частности, - это www.thepiratebay.se, и то, над чем я работаю, - это возможность программно загружать торрент-файл.

--- EDIT ---
Новый код я использую

import requests 
user = "username" 
pswd = "password" 
url = "http://www.thepiratebay.se/login" 
payload = { 
    "act":"login", 
    "username":user, 
    "password":pswd, 
    "submit":"Login" 
} 
r = requests.post(url, data=payload, allow_redirects=True) 
print r.text 

До сих пор не работает! r.text - это только страница входа по умолчанию. Больше предложений?

+0

Вы не указали параметр 'act'. –

ответ

0

я в конечном итоге происходит с другим модулем, саржа, чтобы делать то, что я разыскивается. Я думаю, что саржа на самом деле является «полным» веб-браузером. В любом случае, это код, который был превращен в:

from twill import commands 
commands.go("http://www.thepiratebay.se/login") 
commands.form("loginform", "username", "blah") 
commands.form("loginform", "password", "blah") 
commands.submit() 
1

использование поджигатель чистая вкладка для отслеживания фактических посланные параметров, это то, что я получил, когда я дал ему попробовать:

act   login 
password  password 
submit  Login 
username  username 

Source 
username=username&password=password&act=login&submit=Login 
+0

обновил мой код, по-прежнему не работает! – Broseph

Смежные вопросы