如今越来越多的网站需要用户登录才能访问更多的内容和进行更多的操作,使得要想采集这些网站的数据,自动化登录是一个必不可少的操作。
最初的登录页面只需要输入用户名和密码即可登录。
到后来为了防止机器人恶意登录,开始在登录页面上添加数字验证码、英文数字验证码、数学算数验证码。
再之后,各种变态的验证码开始出现,比如滑块、拼图、勾选物品等验证码。
但是在深度学习的介入下,绕过这些验证码也不是难事。
再到后来,越来越多的网站开始在登录的时候需要进行手机短信验证码验证了。
处理短信验证码的逻辑
如何自动处理短信验证码呢?我们将这个问题解剖一下,其实主要涉及一个最关键的问题:
- 如何获取到短信验证码?
自动处理短信验证码的流程有3个部分:
在发送短信验证码环节,我们可以直接使用 Selenium 之类的工具对短信发送按钮进行模拟点击。
在输入短信验证码环节,我们同样可以直接使用 Selenium 之类的自动化测试工具对页面表单进行填充。
一个卡壳的点在于如何获取到发送的短信验证码,毕竟验证码与网页不在同一个载体之上,解决了这个问题,就解决了短信验证码的问题。
如何获取到短信验证码
如何解决这个问题?我们其实可以设计一个「中间件」或者是「数据库」作为一个中间载体,对接短信验证码的获取和处理。
这里看似很很问题,但是细心的朋友应该发现了,最核心的问题——手机上的短信如何转发到数据库中还没解决呢!
手机上的验证码发送到数据库中同样有两个方式:
- 需要人工部分操作的方式;
- 全自动的方式;
人工操作发送短信验证码
在这里,我们可以需要一个「微信公众号」、「钉钉企业机器人」等工具。
对这些工具进行二次开发,手机收到短信验证码之后,将短信验证码发送到这些平台,使得其能够接收用户发送的短信验证码并进行处理。所谓的处理也就是将短信验证码传输存储到「数据库」中。
之后,采集程序去「数据库」中获取最新的验证码即可。
全自动发送短信验证码
全自动发送短信验证码,则需要开发一个具有「短信监听」功能的简单APP,APP监听并读取用户手机接收到的短信,并将验证码短信进行分析处理推送给后台「数据库」。
在需要接收短信验证码的手机上安装这个APP并加入后台运行的白名单即可。
这样,我们实现了手机短信验证码的获取、接收、传输、读取和填写。
读者朋友们可以自行搭建尝试一下!
欢迎留言交流!
?分享、点赞、在看,给个三连击呗!?