예제 #1
0
def getCaptchas():
    letter = letters[random.randint(0, len(letters) - 1)]
    cap = captcha.Captcha(1, 1, letter, leng)
    while cap.failure == 1:
        cap = captcha.Captcha(1, 1, letter, leng)

    segments = letter
    print "1"
    return letter
예제 #2
0
from captcha import CapDisplay, captcha

disp = CapDisplay.CapDisplay(1200, 800)
for i in range(2):
    cap = captcha.Captcha(do_seg=1)
    while cap.failure == 1:
        cap = captcha.Captcha(do_seg=1)

    disp.update_segs(cap.get_segments())
    disp.display_cap()
    disp.display_seg()

#cap.show_captcha()
예제 #3
0
import captcha.captcha as capm
import os, sys
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from PIL import Image
from fann2 import libfann
import random, uuid
cap = capm.Captcha(length=7)
ann = libfann.neural_net()
ann.create_from_file("ann_fin.net")
letters = "abcdefghklmnprstuvwyzABDEFGHIJKLMNRTUXY23456789"

usernameinp = sys.argv[1]
print "Username: " + usernameinp


def toInput(seg):
    input = []
    for x in range(seg.size[0]):
        for y in range(seg.size[1]):
            p = (x, y)
            col = seg.getpixel(p)

            norm = (((col / 255.00) * 2.00) - 1.00) * -1.00
            input.append(norm)
    return input

예제 #4
0
            col = seg.getpixel(p)

            norm = (((col / 255.00) * 2.00) - 1.00) * -1.00
            input.append(norm)
    return input


right = 0.00
wrong = 0.00
totaal = 1

disp = CapDisplay.CapDisplay(1200, 800)
letters = "abcdefghklmnprstuvwyzABDEFGHIJKLMNRTUXY23456789"

for i in range(totaal):
    cap = captcha.Captcha(do_seg=1, f_server=1, letter=letters, length=6)
    while cap.failure == 1:
        cap = captcha.Captcha(do_seg=1, f_server=1, letter=letters, length=6)
    segs = cap.get_segments()
    answers = []
    for seg in segs:
        inputann = toInput(seg)
        outputann = ann.run(inputann)
        max = [-1, 0]
        for x in range(len(outputann)):
            if outputann[x] > max[0]:
                max = [outputann[x], x]
        #print max[0], max[1], letters[max[1]]
        answers.append((letters[max[1]], max[0]))
    #print answers
예제 #5
0
    for seg in segs:
        inputann = toInput(seg)
        outputann = ann.run(inputann)
        max = [-1, 0]
        for x in range(len(outputann)):
            if outputann[x] > max[0]:
                max = [outputann[x], x]
        #print max[0], max[1], letters[max[1]]
        #print letters[max[1]]
        answer += letters[max[1]]
        #print answer
    return answer


caps = os.listdir('./captchacol/')
capsolver = captcha.Captcha()
for f in caps:

    tempim = Image.open('./captchacol/{}'.format(f)).convert('L')
    capsolver.update_cap(tempim)
    capsolver.segment()
    answ = use_ann(capsolver.get_segments())
    correctAnswer = f[len(f) - 10:len(f) - 4].lower()
    if correctAnswer == answ.lower():
        #print 'correct!'
        correct += 1
    else:
        #print 'incorrect'
        wrong += 1
    if correct != 0:
        curpercent = float(correct) / float(correct + wrong) * 100.00
예제 #6
0
from captcha import captcha, Dataset
import random, time, sys

uur = 3600
begintijd = time.time()
aantaluur = float(sys.argv[2])

ds = Dataset.Dataset(sys.argv[1])
ds.get_header()
totaal = 0
savetime = 50
leng = 1
letters = ds.get_letters()
while True:
    for j in range(savetime):
        letter = letters[random.randint(0, len(letters) - 1)]
        cap = captcha.Captcha(sys.argv[3], 1, 1, letter, leng)
        while cap.failure == 1:
            cap = captcha.Captcha(sys.argv[3], 1, 1, letter, leng)
        ds.segs_to_data(cap.get_segments(), letter)
    ds.save()

    totaal += savetime
    tijdverstreken = time.time() - begintijd
    if tijdverstreken > aantaluur * uur:
        break
    tijdtegaan = aantaluur * uur - tijdverstreken
    print "Totaal: {}".format(totaal) + " Tijd te gaan(min): {}".format(
        tijdtegaan / 60)

print "DONE! TotaalKlaar: {}".format(totaal)