前言,以前在豆瓣日志写了这片文章,结果被豆瓣官方删除了。。。哎,转到这里记录一下。

故事原由:
上周的时候吧,发现有条疯狗在这张剧照(天生杀人狂)下面骂我。若是只是骂我傻逼我还能忍,毕竟人在江湖飘哪人不挨刀。可是你问候的范围大了,那做为一个社会主义核心价值观没有问题的青年,我必须得去操一下你妈了吧。请点击操他妈热线。结果这个怂逼竟然还发私信骂我而后还把我拉黑了,真鸡巴怂。只能在剧照评论下回怼,但剧照毕竟是个公共地方,回多了有碍观瞻。既然私信也无法发了,想了想,那就注册个小号吧,写个脚本骂它7749天也不错呀,说干就干,知识就是骂娘。( _)
=========================分割线=============================
代码思路:
1. 帐号注册
豆瓣如今的帐号注册机制须要邮箱与短信双重验证。这就比较麻烦了,可是有一个小漏洞能够跳过邮箱,只须要手机号就能够注册。具体连接我就不在这里明说了,请参考代码实现。
2. 手机号
注册一个帐号就须要一个手机,而且还要接受验证短信,我哪来那么多手机呀?问这种问题的同窗说明你的互联网思惟还不够深入啊。来,请百度“验证码接收平台”,为你打开新世界的大门。
3. 破解验证码
手机号的问题搞定了,可是下一个问题接踵而来。我发现点击接受短信验证码的时候,豆瓣会很贱的先弹出一个Captcha验证码。因为以前作过相似项目,第一思路就是那上Tesseract-OCR呗。我下面的代码实现也是用的PyTesseract。
先对验证码图像二值化,再降噪,最后进行ocr识别。
通过几天的运行,发现识别成功率低的吓人。只有35/882 = 3.97%。
不过好在豆瓣没有对验证码图像的获取进行限制,能够暴力破解。
做为一个不怕困难、艰苦奋斗的党员,我决定尝试一下对Tesseract进行训练。我取了500张验证码图像,熬瞎了个人眼睛,终于完成了这一项21世纪的伟大工程,兴致勃勃的将db.traineddata放入Tesseract目录下,点击运行。
WTF!识别率稳定在0.00%, 什么鬼哦,是我训练的方式不对吗?ᕕ༼ ͠ຈ Ĺ̯ ͠ຈ ༽┌∩┐
算了,万事开头难,只要肯放弃。训练这种事情不适合我这个懒人。这个时候,个人互联网思惟忽然春光乍泄,诶,有没有验证码破解平台呀?我直接用别人的不就行了!我真棒
微软、百度、腾讯都有提供ocr接口,可是好像效果也不咋滴,我试了试微软的发现还不如本地Tesseract。就在这时候,我发现有某位不肯意透露姓名的网友提示了能够找“打码平台”,使用真“人工”智能来进行验证码破解,一条验证码也就1分钱左右。卧槽,这简直是为我打开了一扇新世界的大门。我试了下云打码,效果还真不错嘿,大概5秒左右能返回结果。主要是这网站的py接口写的还能够,其余打码平台的py接口写的实在太垃圾了,惨不忍睹。
4. 豆瓣的自动防护机制
首先,新注册的帐号给人发送私信的话,好想都会被丢进对方的垃圾豆邮里。我估计豆瓣会验证新帐号的完整性,好比有没有头像呀之类的。我懒得测试了,打狗并不值得投入太多时间,毕竟我还在那狗逼的广播页面操他妈了,这个是会有豆瓣提醒的,垃圾豆邮的话,等他哪天不当心点开,大概会很惊喜吧。挺好。
第二,一个ip地址注册的帐号数应该是有限制的,好比一天内只容许注册多少个这样。若是超过阈值,注册能够成功,可是登录后访问任何一个页面,都会被跳转到手机验证页面,提示帐号有异常,须要再次发送短信验证。。。。(2018.01.16订正:可能不是注册数限制的问题哦,有可能只是碰巧那几个手机号有“问题”,致使豆瓣须要该手机号主动发短信进行验证。)
=========================分割线=============================
代码:
https://share.weiyun.com/5aaXApZ
=========================分割线=============================
若是这篇文章对你有一点点帮助,肯请不吝口舌,帮我去这傻逼的主页问候他全家。谢谢。
傻逼的主页