1

我是 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。

任何想法?:)

非常感谢!

4

1 回答 1

0

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

干杯!

于 2013-07-19T07:27:13.163 回答