在Windows 7下用Ruby+rtesseract来识别简单的验证码

公司内部有一个比较难用的考勤网站,每天上下班都必须登陆这个网站输入员编、密码以及一组非常简单的动态验证码来做上下班考勤,遇到高峰期(临上班或者临下班)这个网站卡的厉害,我们每天这么被折磨着,实在是不爽。更为严重的问题是,我还经常忘记这茬事儿,这个可是事关工资的,逼得我要想点办法解决这个问题。于是我想用ruby写个脚本,每天定时上班之前运行一次,下班以后运行一次,从此打卡这事儿就省心了。

开始折腾了,准备工作如下:

  1. 安装Ruby和DevKit,这个过程比较简单,不多述。关于DevKit的配置请参考 https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
  2. 安装ImageMagick,这里需要注意的是不能去官方下载最新的windows安装文件(官网只发布最新的安装包),ruby的rmagick没有做到和最新的兼容。我是去这里下载的,版本是ImageMagick-6.8.0-0-Q8-windows-dll.exe: http://ftp.icm.edu.pl/packages/unix/graphics/ImageMagick/binaries/。装完以后再命令行运行“convert -v验证是否安装成功。装的时候记得勾选“Install development headers and libraries for C and C++ ”这个选项,默认安装路径是在C:\Program Files下面,最好不要装到这里去,接下来要用到ImageMagick的全路径,有空格会麻烦。
  3. 安装rmagick,具体命令如下:gem install rmagick –platform=ruby — –with-opt-lib=%path_to_imagemagick%/lib –with-opt-include=%path_to_imagemagick%/include
  4. 安装rtesseract。直接用命令“gem install rtesseract”安装即可。

安装过程一般不太顺利,我在公司的电脑上百般折腾都没成功,回到家用自己的电脑也是折腾了半天才成功的。下面这些文档都很有帮助。

  1. HowTo install rmagick gem on Windows
  2. How to install ImageMagick + RMagick on Windows 8
  3. Stack Overflow:installing rmagick gem on windows
  4. GitHub RMagick Issue

安装完成以后就可以开始写段代码尝试解析验证码了,非常简单,对于下面这种简单的图,只有三行代码就搞定。1

代码:

require ‘rtesseract’
img = RTesseract.new(“C:/Users/wpeng/Desktop/1.jpg”)
puts img.to_s.sub(/\s+$/, “”)  #去掉空格,输出 “254369”

接下来要做的就是通过open-uri来访问网页,然后借助于nokogiri来解析html代码,最后通过上面的代码来识别验证码。具体过程就不详细写了。

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>