-
Recent Posts
Recent Comments
Archives
Categories
Meta
Tag Archives: python
python验证码之Discuz(四):暂时的终结
看书看得好烦,想想还是把python验证码系列暂停掉好了,其实这部分代码早几周就结束了,不过想着既然说是Discuz验证码,破解了去Discuz注册一堆马甲乱灌水一通才有快感啊。 ` 哪晓得Discuz论坛管理员们早就预见了我会这么干,早早把验证码改成了中文的,没得玩了,或者说没时间来研究怎么玩了,真是太遗憾了。 `
python验证码识别之Discuz(三)
继续验证码的码字,上次把去噪的算法重新写了一下,并指出了可以改进的部分,不过我是安于现状的人,弄了个60%左右成功率的就沾沾自喜了,姑且就进入下一步吧。 ` 这期间由于discuz官方论坛不知出于何种原因突然改变了验证码的生成方式搞了个中文验证码,我本来计划着扩充测试库到100+个,好好测一下成功率的,可是他们这么一搞无奈只好自己根据Discuz7.2 UTF-8版架了个专门用于破解验证的论坛,把设置重现为Discuz官方论坛以前的设置:http://69.163.35.68/old/crackdz/ 。至于中文验证码,虽然感觉也能做,就不知道有没有时间来研究中文验证码了。
python验证码识别之Discuz(二)
承接上文,上文写道去噪,本文应该接着从切块开始写,然后到比对的。然则上文写完之后开始收集训练样本,把样本用去噪算法一做,惨不忍睹;再加上上文之后有很多人留言提了不少意见,所以有了新的方向。 ` 首先骨头兄提议说可以用tesseract来做OCR,这个确实是一个很好的建议。很多验证码其实很简单,根本用不到高级的东东,直接用tesseract就可以摆平。 ` 然而经过实验,效果不尽如人意,如图: ` 还有关于选取多角度多采样的建议,后来发现会导致样本容量太大,性能受到影响,所以也作出了一定的调整,目前来说验证码识别的部分算是写完了,绝对识别率在10%左右,如果可接受其他候选结果的话,识别率在50%左右,不能识别的主要因素是去噪效果不理想和没有成功切块。 ` 最后还有关于Discuz验证码使用反色阴影的建议,虽然可能可以大幅提高去噪成功率,但是因为不够通用被我舍弃了。 ` 我不喜欢直接写结论,我会把我的探索过程和绕圈子过程一起写出来,因为这样看了才有收获,否则也就是”又一个注册码破解器”这种东东而已,能写出来多少就写多少吧。
python验证码识别之Discuz(一)
python就是这么一个语言:你越是使用,越能体会它的方便与强大。 ` 在写python爬虫脚本用法总结的时候曾经提到过验证码的处理问题,当时就说了google的验证码要凉拌,但是某些验证码,尽管它看起来可能很复杂, 但是却没有想象的那么难破,我就有破解成功的例子。不过那个例子并不是Discuz,当时我还觉得Discuz的验证码挺花哨的,如图: ` 前一阵simplecd的论坛老有机器人注册进来灌水一通,不甚其扰,但是也说明了discuz的验证码可能被别人吃透了,所以才会机器人猖獗,我改了验证码方式以后果然机器人就绝迹了。 ` 机器人泛滥就说明这个注册机制有漏洞,那么Discuz的验证码肯定是有漏洞的,于是本人就试着也破解一下好了。
VeryCD灌水机-python自动灌水脚本示例
VeryCD那个铜光盘才能进候补区的规定很烦人,必须得灌水才能升级,可是又懒得灌,于是写了一个灌水脚本,有人问我要,就干脆发出来共享一下吧。 ` 使用方法: 1.把username和passwd改成相应的东东 2.用python解释器执行脚本,自动在首页的所有资源后面跟帖支持楼主 ` 想要了解灌水机原理的话: 1.学会python基本原理 2.学会正则表达式,网络脚本必备(也可以学beautifulsoup,写的代码更直观易懂,不过正则通用性强,总要学的) 3.学会html基本格式,理解获取网页的GET/POST机制 4.然后再看代码吧,这个脚本因为很简单,所以注释了一下
python有多慢?python vs c++
Python有多慢? 最近做一些和性能相关的东东,因为被python惯坏了,实在不想用编写和调试复杂十倍而且很遗憾我已经好久不用快忘光的C/C++,但是又怕python会造成大的瓶颈,所以对python的性能很好奇。 ` 随处搜了一下,这篇关于 Ruby/Java/Python/PHP性能比较: http://www.blogjava.net/shinewang/archive/2009/01/20/251600.html 它得出结论PHP : JRuby : Python : Java 大约是 1:2:4:100,这个结论令我有点不敢相信,我一直以为python是效率仅次于java的厉害家伙呢。(嘛,虽然这个结果好像python确实仅次于java@@)这让人有点不太放心用python写代码了,写出乌龟来也太过糟糕。
SimpleCD Desktop版
完美地让SimpleCD在Windows上运行,html打包下载可以取消了(又过时又不方便)。
用python爬虫抓站的一些技巧总结
学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想写google music的抓取脚本的,结果有了强大的gmbox,也就不用写了。 – 这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,再加上simplecd这个半爬虫半网站的项目,累积不少爬虫抓站的经验,在此总结一下,那么以后做东西也就不用重复劳动了。
备份VeryCD的进一步讨论(三): 使用web.py框架架设山寨网站
虽然还是个半成品,但是框架已经大约定下来了,山寨页面在此:http://www.simplecd.org ========================================= VeryCD的山寨化终于进入了第三阶段,鼓掌~~。前文说到怎么用python爬verycd的内容,并且保存为数据库;这次就要说说怎么用web.py建站,并且怎么实现简单的搜索功能。 – 其实建站最常用的方法还是php,但是要让被python宠坏的我来写枯燥乏味的php脚本,实在不想遭这个罪,更何况我底层都用的python实现,如果网站也用python的话,调用底层代码起来就无比方便了。
备份VeryCD的进一步讨论(二):sqlite3数据库的处理
话说上回说到用python写爬虫脚本,把VeryCD的资源信息抓取下来,并提及了建设山寨站点的想法,这回继续说怎样保存到数据库中。 – 数据库有什么好处?维护起来不见得方便,比如我只要按VeryCD的Topic号建立文件名,一条数据存一个文件,维护起来极其简单:直接修改查看即可。 – 为了让其按更新时间排序,那么就略微复杂那么一点点了,只要对更新时间建立一张索引表,那么排序也是分分钟的事情:空间占用仅为O(N),且一个Topic仅为一个integer、时间上也就是建表O(NlogN),更新O(logN)。排序有先成的函数,更新不知道有不,没有的话也可以先remove,再insert的办法来做,还是O(logN),或者干脆自己写代码好了,反正也就是二分查找而已。