您现在的位置是:休闲 >>正文
python爬虫遇到登录手机短信验证
休闲11172人已围观
简介手机短信验证码是爬虫路上最常见的一堵墙。我见过太多人卡在这里,对着浏览器里那个“请输入6位验证码”的输入框干瞪眼。别急着放弃,这堵墙有缝可钻,而且不止一条缝。 先说最笨但最有效的办法——人工介入。写个 ...
手机短信验证码是爬虫爬虫路上最常见的一堵墙。我见过太多人卡在这里,遇到验证对着浏览器里那个“请输入6位验证码”的登录短信输入框干瞪眼。别急着放弃,手机这堵墙有缝可钻,爬虫而且不止一条缝。遇到验证
先说最笨但最有效的登录短信办法——人工介入。写个脚本,手机让它停在验证码输入环节,爬虫弹个提示框,遇到验证你手动收短信填进去,登录短信程序继续跑。手机我去年爬某个政府公开数据平台就这么干过,爬虫每天定时跑一次,遇到验证一次就一个验证码,登录短信手动输入花不了十秒钟。缺点也明显,你要是想跑高频采集,比如每分钟来一次,这招直接废掉。
稍微聪明点的方式是接短信转发服务。市面上有云短信平台,提供虚拟号码,能接收验证码并通过API回调给你。流程大概是:脚本申请一个手机号→用这个号去目标网站注册或登录→平台收到短信→回调你的服务器→你提取验证码填进表单。整套下来能自动化,但成本不低,一条短信几毛到几块不等,还要看平台支不支持你要爬的那个网站。我试过几次,发现很多平台对热门网站做了限制,比如淘宝、微信这种,虚拟号基本收不到码。
还有个偏门路子——用安卓模拟器配合自动化工具。在模拟器里装个真实SIM卡(现在很多模拟器支持插卡),再用Appium控制浏览器操作。短信来了直接读系统通知栏,提取验证码。这招能绕过大部分网页端的反爬检测,因为你的操作看起来就是个普通手机用户。缺点是环境搭建麻烦,模拟器吃内存,跑多了容易卡死。
再往下挖,有些网站的验证码逻辑存在漏洞。比如有的系统只校验验证码是否匹配,不校验它是否过期;有的验证码是4位纯数字,爆破空间只有一万种组合,配合代理池慢速重试,半小时能试完;还有的更离谱,验证码发送接口和登录接口共用同一个session,你只要先触发发送验证码,然后立刻用任意验证码去登录,某些情况下后端居然不校验。这些属于“黑魔法”,能用但别依赖,网站一改版就失效。
说到底,防爬方和爬虫的博弈永远在动态演进。短信验证码的本质是增加自动化成本,而不是彻底阻断。你需要的不是某个万能解法,而是根据目标网站的具体实现、你的采集频率、预算上限,组合出适合自己的方案。我个人的经验是:低频小规模,人工介入最稳;中频百次级,接短信平台性价比最高;高频千次以上,那就得考虑模拟器或者直接放弃,换个数据源。别跟验证码死磕,时间也是成本。
Tags:
上一篇:网络信息安全典型案例
下一篇:黑客写代码的软件
相关文章
ssl协议漏洞
休闲2014年,谷歌安全团队公布了一个代号为“心脏出血”的漏洞。这个漏洞存在于OpenSSL加密库中,能让攻击者直接读取服务器内存里的私钥。更讽刺的是,这个漏洞在2012年就被引入,整整潜伏了两年才被发现 ...
【休闲】
阅读更多李志所有视频网盘
休闲李志的演出视频在网上像野火一样烧过又灭,灭了又烧。网盘里存着的那几百个G,是很多乐迷心照不宣的私藏。我见过最狠的一位,把2015年北京工体那场《看见》的现场,按曲目一首首切开,命名格式整齐得像图书馆索 ...
【休闲】
阅读更多检测到csrf攻击无法登录怎么办
休闲浏览器弹出一行红色警告:“检测到CSRF攻击,登录已阻止”。你反复刷新页面,清空缓存,甚至换了浏览器,问题照旧。这时候,九成的人会以为是账号被盗,急急忙忙去改密码——但真正的坑,往往不在密码上。 我遇 ...
【休闲】
阅读更多