Del.icio.us Captcha Cracked

Here ya go. This is the del.icio.us captcha busted in Python.

#!/usr/bin/pythonimport Image,time,random,glob,re,os,sys##$$$$train = raw_input("train? (y/n)")if(train == "y") : train= Trueelse: train = False##fileName = ''.join(sys.argv[1:])def getNeighbourhood(i,width,height,pixels):results = []try:if(pixels[i+1] != 0): results.append(i+1)if(pixels[i-1] != 0): results.append(i-1)if(pixels[i-width] != 0): results.append(i-width)if(pixels[i+width] != 0): results.append(i+width)if(pixels[i-width+1] != 0): results.append(i-width+1)if(pixels[i+width+1] != 0): results.append(i+width+1)if(pixels[i-width-1] != 0): results.append(i-width-1)if(pixels[i+width-1] != 0): results.append(i+width-1)except:passreturn resultsnow = time.time()captcha = Image.open(fileName)(width,height) = captcha.sizepixels = list(captcha.getdata())i=0for pixel in pixels:if (pixel == 2): pixels[i] = 0i+=1toclean = []for i in xrange(len(pixels)):neighbourhood = getNeighbourhood(i,width,height,pixels)if (len(neighbourhood)  lowestY): lowestY = yif(y 4):croppingBox = (firstX,highestY,lastX,lowestY)newCaptcha = captcha.crop(croppingBox)if(train):text = raw_input(”char:n”)try: os.mkdir(”/home/dbyte/deliciousImages/” + text)except:passtext__ = “/home/dbyte/deliciousImages/” + text + “/” + str(random.randint(1,100000)) + “-.png”newCaptcha.resize((20,30)).save(text__)text_ = “/home/dbyte/deliciousImages/” + text + “/” + str(random.randint(1,100000)) + “-.png”newCaptcha.resize((20,30)).rotate(slant).save(text_)text_ = “/home/dbyte/deliciousImages/” + text + “/” + str(random.randint(1,100000)) + “-.png”newCaptcha.resize((20,30)).rotate(360 - slant).save(text_)captchas.append(Image.open(text__))else:#text = str(count)#text = “tmp-delicious-” + text + “.png”#newCaptcha.save(text)captchas.append(newCaptcha.resize((20,30)))started=FalselowestY,highestY = 0,10000count +=1if(train == False):imageFolders = os.listdir(”/home/dbyte/deliciousImages/”)images =[]for imageFolder in imageFolders:imageFiles = glob.glob(”/home/dbyte/deliciousImages/” + imageFolder + “/*.png”)for imageFile in imageFiles:pixels = list(Image.open(imageFile).getdata())for i in xrange(len(pixels)):if pixels[i] != 0: pixels[i] = 1images.append((pixels,imageFolder))crackedString = “”for captcha in captchas:bestSum,bestChar = 0,”"captchaPixels = list(captcha.getdata())for i in xrange(len(captchaPixels)):if captchaPixels[i] != 0: captchaPixels[i] = 1for imageAll in images:thisSum = 0pixels = imageAll[0]for i in xrange(len(captchaPixels)):try:if(captchaPixels[i] == pixels[i]): thisSum+=1except: passif(thisSum > bestSum):bestSum = thisSumbestChar = imageAll[1]crackedString += bestCharprint crackedString#print “time taken: ” + str(time.time() - now)

–>