javascript - 如何使用验证码发起模拟登录请求
问题描述
我最近正在尝试制作登录验证脚本。通过抓取HTTP请求,我得到了提交的参数,但其中一些似乎是一次性的内容。这些内容被放置在具有“隐藏”属性的文本框中。就像这样:
<input type="hidden" name="xxxx" value="xxxx">
我首先尝试使用curl获取登录页面,发现每次获取的值都不一样。然后我尝试复制它们并使用 curl 开始模拟,这显然失败了。Curl 的结果将我重定向到登录页面。
让我困惑的是,这些参数似乎是验证码。因为它们是在登录页面中返回的,所以如果不获取页面,我就无法获取它们的值。但是上面的尝试表明,即使我得到了它们的值,它似乎也没有任何意义。
然后,我尝试在浏览器的控制台上用js模拟,但是我通过document.getElementsByName得到了它们的值,这显然是正确的。
这让我很困扰。这些参数看起来像验证码,但它们不像某些网站上的验证码那样单独提供。这意味着第一次获取验证码并保留cookie,然后携带cookie进行第二次请求,这种方法是行不通的。有什么好的方法可以解决这个问题吗?
解决方案
推荐阅读
- python - 从嵌套列表中删除负元素并对列表进行平方而不使用循环
- python - 将 python 列表转换为 numpy 数组时出现值错误
- c - 哪个函数将 ARP 数据包发送到 Linux 内核中的 ARPD 守护进程?
- sql - 使用 SQL Server 进行内存查询
- python - 从父类调用子类@classmethod
- intel - 加载中间表示打开 vino 时出现运行时错误
- python - URLLib.Request 在使用 cron (CentOS) 执行时返回连接超时
- python - 使用您刚刚在烧瓶上运行的函数的数据渲染模板
- exception - Draw.io Uncaught TypeError: dialog.showSaveDialogSync 不是一个函数
- python - 创建 N 维 numpy 数组列表的列表