首页 > 解决方案 > 如何使用验证码发起模拟登录请求

问题描述

我最近正在尝试制作登录验证脚本。通过抓取HTTP请求,我得到了提交的参数,但其中一些似乎是一次性的内容。这些内容被放置在具有“隐藏”属性的文本框中。就像这样:

<input type="hidden" name="xxxx" value="xxxx">

我首先尝试使用curl获取登录页面,发现每次获取的值都不一样。然后我尝试复制它们并使用 curl 开始模拟,这显然失败了。Curl 的结果将我重定向到登录页面。

让我困惑的是,这些参数似乎是验证码。因为它们是在登录页面中返回的,所以如果不获取页面,我就无法获取它们的值。但是上面的尝试表明,即使我得到了它们的值,它似乎也没有任何意义。

然后,我尝试在浏览器的控制台上用js模拟,但是我通过document.getElementsByName得到了它们的值,这显然是正确的。

这让我很困扰。这些参数看起来像验证码,但它们不像某些网站上的验证码那样单独提供。这意味着第一次获取验证码并保留cookie,然后携带cookie进行第二次请求,这种方法是行不通的。有什么好的方法可以解决这个问题吗?

标签: javascripthtmlhttp

解决方案


推荐阅读