Python 提交带有请求的表格不';我不能通过

Python 提交带有请求的表格不';我不能通过,python,python-2.7,Python,Python 2.7,我真的试着自己解决这个问题,但我是pyhon的新手,所以我没能做到。我一直在尝试为我使用的网站制作一个机器人,我正在尝试使用请求库来实现这一点。到目前为止,我的目标非常简单:登录并回复线程 我已经能够通过web表单登录,但是我在通过提交表单回复线程时遇到了一些问题。 起初,我的代码是这样的: payload = { 'post': 'Send' 'message': message } response = self.session.pos

我真的试着自己解决这个问题,但我是pyhon的新手,所以我没能做到。我一直在尝试为我使用的网站制作一个机器人,我正在尝试使用请求库来实现这一点。到目前为止,我的目标非常简单:登录并回复线程

我已经能够通过web表单登录,但是我在通过提交表单回复线程时遇到了一些问题。 起初,我的代码是这样的:

   payload = {
        'post': 'Send'
        'message': message
    }

    response = self.session.post(reply_url, data=payload)
    payload = {
        'post': 'Send'
        'message': message, 
        'form_token': form_token, 
        'topic_cur_post_id': topic_cur_post_id, 
        'lastclick': lastclick,
        'creation_time': creation_time 
    }

    response = self.session.post(reply_url, data=payload)
其中“发送”是提交按钮的名称。请求实际上已提交,但遇到错误。所以我寻找了隐藏的字段,我找到了它们:

   <input type="hidden" name="topic_cur_post_id" value="75855" />
   <input type="hidden" name="creation_time" value="1472760834" />
   <input type="hidden" name="lastclick" value="1472761028" />
   <input type="hidden" name="form_token" value="0ba9f5b8e091367fa38ad8db68424a1adb62d299" />
现在,我没有遇到任何错误,我被重定向,好像我的答复已提交。事情是——不是。我仔细检查了我的有效载荷是否可靠,它是否可靠。 奇怪的是。。。如果我下一步尝试执行完全相同的代码,只是删除了“lastclick”,它实际上会通过!但只有几次尝试。然后我必须将“lastclicks”添加回有效负载,执行代码,然后删除它,然后它才能工作

对我来说,这真是一个沉重的打击。如果有人有一些线索或想法,我很高兴听到。
提前谢谢

我猜lastclick参数是某种令牌,它会阻止您完全执行您正在执行的操作。我建议您请求包含隐藏输入的站点,并使用解析的输入提取它们。这正是您的浏览器所做的,因此它应该按预期工作。编辑:看来你正在这么做。如果隐藏的输入不存在,什么是
lastclick
?谢谢大家,我已经解决了这个问题。如果将来有人遇到类似的情况,答案是在请求之间等待几秒钟。显然有一些冷却,你可以一个接一个地发送get和post请求。