提交带有请求的表单不会通过

时间:2016-09-01 20:30:16

标签: python python-2.7

我真的试图自己解决这个问题,但我是pyhon的新手,所以我无法做到这一点。我一直在尝试为我使用的网站制作一个机器人,我正在尝试使用请求库。到目前为止,我的目标很简单:登录并回复一个帖子。

我已经能够通过网络表单登录了,但是通过提交表单我遇到了一些回复线程的麻烦。 起初我的代码看起来像这样:

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

    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" />

所以基本上我现在首先使用GET请求收集所有这些信息,我的代码现在看起来像这样:

    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)

现在我没有遇到任何错误,我被重定向,好像我的回复已提交。事情是 - 它不是。我仔细检查了我的有效载荷是否稳固,它是。 奇怪的事情是......如果我接下来尝试执行完全相同的代码,只有删除'lastclick',它实际上会通过!但只是少数尝试。然后我必须将'lastclicks'添加回有效负载,执行代码,然后将其删除,然后才能正常工作。

对我们来说,这是一个真正的头脑风暴。如果有人有一些线索或想法,我会很高兴听到它。 提前谢谢!

0 个答案:

没有答案