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":
现在基本上没啥问题了,可以运行了。。那么接下来就是测试效果和改进识别算法了
页:
[1]