在做一个自动登录的脚本,碰到验证码通过 chrome 的调试模式能直接看到验证码,如下图 http://ww4.sinaimg.cn/mw690/005RvRnzgw1f87wsnzqjcj30by01hjrk.jpg 如果我要用 python requests 有没有办法搞到这个验证码
1
Hyeongo 2016-09-27 10:04:34 +08:00 via iPhone
直接取那个值不就好了
|
3
zhengmacro OP @vivagonna 对的, js 生成的
|
4
crab 2016-09-27 10:15:36 +08:00
xhr 请求看看
|
5
zhengmacro OP js 是直接写在登录页面的,类似下面这个
var code; //在全局 定义验证码 function createCode() { code = ""; var codeLength = 6;//验证码的长度 var checkCode = document.getElementById("checkCode"); var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候选组成验证码的字符,当然也可以用中文的 for (var i = 0; i < codeLength; i++) { var charIndex = Math.floor(Math.random() * 36); code += selectChar[charIndex]; } //alert(code); if (checkCode) { checkCode.className = "code"; checkCode.value = code; } } function validate() { var inputCode = document.getElementById("input1").value; if (inputCode.length <= 0) { alert("请输入验证码!"); } else if (inputCode != code) { alert("验证码输入错误!"); createCode();//刷新验证码 } else { alert("^-^ OK"); } } |
6
cheetah 2016-09-27 10:37:05 +08:00 via iPhone
这个验证码的生成和验证完全是前端 js 来做的,你用 requests 请求的时候本来就不会执行 js ,所以,管他作甚?
|
7
zongren 2016-09-27 10:43:51 +08:00
楼上说的很清楚了
|
8
crab 2016-09-27 10:50:37 +08:00
如果是前端生成,你不提交或者提交符合长度的字符串就行了。服务端也验证不到。
|
9
zhengmacro OP |
10
killerv 2016-09-27 13:23:34 +08:00
突然感觉好多验证码设计真是奇葩
|
11
PureDark 2016-09-28 00:50:09 +08:00
这个验证码的设计毫无意义啊
你是用代码提交的,那就完全不需要管他这个验证码,直接绕过 JS 验证提交请求不就行了…… 服务端又不验证 |
12
linruiyi 2016-10-08 15:51:05 +08:00
前端生成,哈哈哈,这个设计真的是~~~ 看题目第一眼以为是要问后端生成的
|