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

2024-05-07 02:13:53 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

    response = self.session.post(reply_url, data=payload)

其中“Send”是提交按钮的名称。请求实际上已提交,但遇到错误。所以我寻找了隐藏的领域,我发现了它们:

   <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”添加回有效负载,执行代码,然后删除它,只有这样它才能工作

对我来说,这真是个大麻烦。如果有人有什么线索或想法,我会很高兴听到的。 提前谢谢


Tags: 代码namesendidmessageinputtopicvalue