问个很蠢的爬虫验证码问题

2016-09-27 09:58:12 +08:00
 zhengmacro

在做一个自动登录的脚本,碰到验证码通过 chrome 的调试模式能直接看到验证码,如下图 http://ww4.sinaimg.cn/mw690/005RvRnzgw1f87wsnzqjcj30by01hjrk.jpg 如果我要用 python requests 有没有办法搞到这个验证码

3313 次点击
所在节点    Python
12 条回复
Hyeongo
2016-09-27 10:04:34 +08:00
直接取那个值不就好了
vivagonna
2016-09-27 10:06:53 +08:00
@Hyeongo 楼主的意思可能是验证码是 js 生成的,跟抢月饼那个类似, lol
zhengmacro
2016-09-27 10:15:15 +08:00
@vivagonna 对的, js 生成的
crab
2016-09-27 10:15:36 +08:00
xhr 请求看看
zhengmacro
2016-09-27 10:20:24 +08:00
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");
}
}
cheetah
2016-09-27 10:37:05 +08:00
这个验证码的生成和验证完全是前端 js 来做的,你用 requests 请求的时候本来就不会执行 js ,所以,管他作甚?
zongren
2016-09-27 10:43:51 +08:00
楼上说的很清楚了
crab
2016-09-27 10:50:37 +08:00
如果是前端生成,你不提交或者提交符合长度的字符串就行了。服务端也验证不到。
zhengmacro
2016-09-27 11:05:08 +08:00
@cheetah
@zongren
@crab
感觉天亮了,谢谢哈哈
killerv
2016-09-27 13:23:34 +08:00
突然感觉好多验证码设计真是奇葩
PureDark
2016-09-28 00:50:09 +08:00
这个验证码的设计毫无意义啊

你是用代码提交的,那就完全不需要管他这个验证码,直接绕过 JS 验证提交请求不就行了……

服务端又不验证
linruiyi
2016-10-08 15:51:05 +08:00
前端生成,哈哈哈,这个设计真的是~~~ 看题目第一眼以为是要问后端生成的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/309214

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX