我已经查看了相关的答案,但我还没有发现一些非常有用的东西。我正试图从我团队的CBS Sportsline页面上搜集一些奇幻棒球信息。
我想发布登录名和密码,然后当我使用get命令时,请查看特定于我的帐户的数据。
这是我的尝试:
import requests
myurl = 'http://bbroto.baseball.cbssports.com/transactions'
payload = {
'userid': '(my username)',
'Password': '(my password)',
'persistent': '1'}
session = requests.session()
p = requests.post(myurl, data=payload)
r = session.get(myurl)
print r.content
它为我提供了通用页面(好像我没有登录)。
以下是表单信息的样子:
<form method="post" action="/login/index" name="login_form" id="login_form" >
<input type="hidden" name="dummy::login_form" id="dummy::login_form" value="1">
<input type="hidden" id="form::login_form" name="form::login_form" value="login_form">
<table id="table_login_form" class="formLayout"><input type="hidden"
value="http://bbroto.baseball.cbssports.com/transactions" name="xurl" id="xurl"><input
type="hidden" value="150" name="master_product" id="master_product"><input
type="hidden" value="cbssports" name="vendor" id="vendor"><tr id="row_userid"><td
align="right"></td>
<td><table class="fieldLayout"><tr><td><input type="text" value="Email or
ID" name="userid" id="userid" class="placeHolder" onfocus="if(this.value==defaultValue)
{this.value='';};" size="30" maxlength="264" data-field-placeholder="Email or ID" data
-field-required="1"></td></tr></table></td></tr><tr id="row_password"><td
align="right">
</td><td>
<table class="fieldLayout"><tr><td><input type="password"
value="Password" name="password" id="password" class="placeHolder"
onfocus="if(this.value==defaultValue){this.value='';};" size="30" maxlength="12" data-
field-placeholder="Password" data-field-required="1"></td></tr></table></td></tr><tr>
<td>
<!--label column--></td><td colspan="5"><input type="submit" id="submitButton"
value="Sign
In" class="formButton" om-event="User Utilities|Sign In - Member|Sign In"></td></tr>
</table><!--end FORM table-->
</form>
所以相关字段似乎是userid和Password
答案 0 :(得分:4)
您发布了错误的表单数据。
查看帖子数据:
所以帖子数据可能如下所示:
payload = {
'dummy::login_form': 1,
'form::login_form': 'login_form',
'xurl': '/',
'master_product': 150,
'vendor': 'cbssports',
'userid': YOUR EMAIL HERE,
'password': YOUR PASSWORD HERE,
}