python获取验证码_python和selenium组合获取验证码?

import win32gui

from ctypes import *import ctypes

from PIL import ImageGrabimport win32api,win32con

import pyHookimport pythoncom

from selenium import webdriverimport os

import time#此处登录网站并且输入用户名密码

browser = webdriver.Chrome()browser.get("此处输入你的网址")

browser.find_element_by_id("username").send_keys("用户名")browser.find_element_by_id("password").send_keys("密码")

#对验证码部分进行截图while (1):

class RECT(ctypes.Structure):_fields_ = [('left', ctypes.c_int),

('top', ctypes.c_int),('right', ctypes.c_int),

('bottom', ctypes.c_int)]rect = RECT()

HWND = win32gui.GetForegroundWindow()ctypes.windll.user32.GetWindowRect(HWND, ctypes.byref(rect))

# 下面这行是只截取验证码这个区域

coordinate = (rect.left+432, rect.top+463, rect.right-420, rect.bottom-525)pic = ImageGrab.grab(coordinate)

pic.save("D:\\verificationcode.jpg")#使用OCR技术进行识别

command = "tesseract verificationcode.jpg d:\\verresult"os.system(command)

f = open("d:\\verresult.txt",'r')line = f.read(4)

#print linef.close()

g=line.isalnum()#print g

#枚举识别,如果识别失败则重新截图识别,直到进入系统。if g:

browser.find_element_by_id("authcode").send_keys(line)browser.find_element_by_xpath("//button[@type='submit']").click()

#print "click submit ok"time.sleep(2)

# 获取系统的title,比如成功登录进去以后的title是“系统首页”

if u"系统首页" == browser.title :print "login success"

breakelse:

#下面就是验证码错误以后的处理,比如点掉提示验证码错误的框等等。

#print "login faild"time.sleep(2)

browser.find_element_by_id("okBtn").click()#print "click okbtn ok"

time.sleep(2)browser.find_element_by_id("authCodeImg").click()

#print "click codeimg ok"else:

browser.find_element_by_id("authCodeImg").click()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值