公司网站是一个内容类网站,招引了许多爬虫来爬取数据,有的爬虫比较温和,会克制自己,发送请求的频率比较低,这样的只要不影响网站性能我一般是睁一只眼闭一只眼的,但是有的爬虫就比较不要脸了,发送请求的频率已经超过了其他用户的总和,占用带宽和服务器资源,导致系统变慢,我一直在和这种厚颜无耻之人作斗争…啊,是的,我就骂你了,谁让你爬我数据
这两天发现了大量恶意注册账号,借助网上众多的接码平台(这些平台也是臭不要脸,央视都曝光过也还是没能打击到他们),实现短信注册,然后靠大量的账号在我网站上爬取数据,今天一天我就拉黑了近两百个这种账号(网站第一版比较low,只能监测爬虫行为,还得手动限制它的行为),把我气得不行
通过观察,这些恶意注册的账号每隔20秒左右就注册一个,所以推测爬虫它爹(以后就跟这些爬虫的主人取昵称为“爬虫它爹”)已经告别了手动查看接码平台短信验证码的阶段,实现了和接码平台的接口对接或自动化接码。这样的话我就很吃亏,我拉黑账号也是要费时间的,而爬虫它爹却可以吃着火锅唱着歌,点一下鼠标就能获得许多个账号喂他的爬虫儿子
我首先想到的是提高他注册的门槛,我发现这些接码平台都有一个共同点就是会隐藏短信验证码发送号码的中间几位
那么如果我在用户注册的时候要求填写完整的短信发送号码,不就解决了接码平台的问题吗?但是又有一个问题,短信服务接口好像也没返回我发送号码呀,公司用的是华为短信服务(之前用的是阿里,后来由于某种原因改成了华为,华为短信比阿里要贵一点,而且从管理后台功能来看,个人觉得还是阿里好一点),我查了华为短信接口开发文档,也没有发现关于发送号码的内容,而且,要是接码平台实际上会提供给他的付费用户完整的发送端号码,那我这样做不就没有意义了吗
那还有什么办法能提高爬虫注册的门槛呢,我又想到了邮件注册,我发现代收邮件验证码的网站很少,也不知道是为什么,如果注册时改为邮件验证码(当然不一定非得以验证码的形式,个人觉得链接跳转验证的方式更好,这样即使有邮件验证码代收的平台也没有用)
不过,邮件验证很常见的就是邮件被收进垃圾箱,而且也不是所有用户都实时登录着邮箱,这就比较麻烦,不止爬虫不好注册了,正常用户的使用体验也降低了
现在网站大部分注册都是手机短信,可能领导也不见得同意我改成邮箱
今天先到这,休息,休息一下~