使用cookie设置在Python中发布请求,但仍未正确发送数据

时间:2013-07-17 11:37:10

标签: python cookies http-post

我是Python新手,但我想我在研究3小时后处理问题并不算太糟糕。 由于cookie,我的POST请求绕过登录墙,但它从不在页面上发布我想要的信息。 :(

这是我的代码:

import requests

url = "url"
headers = {
'Cookie': 'cookie',
'Content-Type': 'multipart/form-data',
'Accept': 'text/html,application/xhtml+xml',
'Accept-Language': 'en-gb,en;q=0.5',
'Accept-Encoding': 'gzip,deflate',
'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'Keep-Alive': '300',
'Connection': 'keep-alive',
'Content-Length': '41'
}

payload = {
'seo_page[keyword]': 'test',
'commit': 'Save'
}

p = requests.post(url, data=payload, headers=headers)

print p.text.encode('utf8')
print p.encoding
print p.headers

我认为,在我阅读的有关如何在webform页面上发布数据的15个主题中,我确切地建议了这一点。

print p.text.encode('utf8')给了我没有我想要发送的数据的HTML。

有什么想法吗? :)

非常感谢!

1 个答案:

答案 0 :(得分:0)

一切都好! POST请求设置正确但由于边缘情况,它仍然不接受数据: 我尝试POST的网站是在Ruby on Rails上开发的,它要求一个额外的身份验证令牌(为了避免CSRF攻击而开发)。

干杯!