mac os x(lion)上运行CIntruder

CIntruder是一个开源的验证码识别程序(姑且不讨论效果)。

在mac os上存在这样的问题:

$: python cintruder --crack "inputs/test1.gif"
===========================================================================

CIntruder v0.1 - 2012 - (GPLv3.0) -> by psy

===========================================================================
Starting to 'crack' from file...
===========================================================================
Target:  inputs/test1.gif
=======
Loading dictionary... 
('\nInternal problems cracking: ', 'error')
Traceback (most recent call last):
  File "/Users/liangyu/Downloads/cintruder/core/main.py", line 74, in try_running
    return func(*args)
  File "/Users/liangyu/Downloads/cintruder/core/main.py", line 172, in crack
    self.crack_captcha(captchas)
  File "/Users/liangyu/Downloads/cintruder/core/main.py", line 179, in crack_captcha
    w = self.optionCrack.crack(self.options)
  File "/Users/liangyu/Downloads/cintruder/core/crack.py", line 82, in crack
    temp.append(self.buildvector(Image.open("iconset/%s/%s"%(letter, img))))
  File "/Library/Python/2.7/site-packages/PIL/Image.py", line 1980, in open
    raise IOError("cannot identify image file")
IOError: cannot identify image file

  定位到文件“crack.py”中,83行,看到应该是路径问题,所以在83行前面加一行输出:

print "iconset/%s/%s"%(letter, img)

    然后可以看到是由于.DS_Store的问题,接下来想办法排除该文件即可。想83行上面看:

 74                 if img != "Thumbs.db": # win32 check
 75                     if options.verbose:
 76                         if last_letter != letter:
 77                             print "-----------------"
 78                             print "Word:", letter
 79                             print "-----------------"
 80                         print img
 81                         last_letter = letter

   看到实际上该代码对Thumbs.db做了排除,so只需加一点点就可以排除.DS_Store了

     

 if img != "Thumbs.db" and img!=".DS_Store":

   现在基本上没啥问题了,可以运行了。。那么接下来就是测试效果和改进识别算法了

posted on 2012-07-02 01:44  rainduck  阅读(799)  评论(0编辑  收藏  举报

导航