使用python中的请求处理post数据

时间:2014-11-18 07:39:29

标签: python post login http-post python-requests

无法使用以下参数在我的网站登录:

token=...#by xpath
postdata={'token':token, 'arg1':'', 'arg2':'', 'name[user]': user, 'name[password]':password, 'arg3': 'Sign in'}
postresp=requests.post(url='http://example.com', data=postdata)
.
.
.

我应该将名称[用户] 更改为name%5Buser%5D吗?

我应该将名称[密码] 更改为name%5Bpassword%5D吗?

我应该将登录更改为Sign+in吗?

arg1 arg2 为空。我应该删除它们吗?

如果不能,我怎么能改变它们?因为我无法登录我的帐户...

1 个答案:

答案 0 :(得分:0)

请求lib已经对您的词典进行了编码。但如果你想自己做,你应该使用一个字符串。对于一个词典试试这个:

postdata={
    'token':token,
    'arg1':'',
    'arg2':'',
    'name[user]': user, # I think this should be : instead of ,
    'name[password]':password,
    'arg3': 'Sign in'}
headers={
    'Content-Type': 'application/x-www-form-urlencoded' 
    # With this header you tell the server you're sending form params
}
postresp=requests.post(url='http://example.com', headers=headers, data=postdata)