# -*- coding: utf-8 -*-
#Author:哈士奇说喵
from selenium import webdriver
import os
import pytesser
import sys,time
from PIL import Image,ImageEnhance
#shift+tab多行缩进(左)
reload(sys)
PostUrl = "http://yjsymis.hrbeu.edu.cn/gsmis/indexAction.do"
driver=webdriver.Firefox()
driver.get(PostUrl)
i=0
while 1:#sb登录系统,即使输对所有消息还是登不进去的,需要登录两次及以上
i=i+1
try:
elem_user = driver.find_element_by_name('id')
elem_psw = driver.find_element_by_name('password')
elem_code = driver.find_element_by_name('checkcode')
except:
break
#-------------------对验证码进行区域截图,好吧,这方法有点low------------------
driver.get_screenshot_as_file('C:UsersMrLevoimage1.jpg')#比较好理解
im =Image.open('C:UsersMrLevoimage1.jpg')
box = (516,417,564,437) #设置要裁剪的区域
region = im.crop(box) #此时,region是一个新的图像对象。
#region.show()#显示的话就会被占用,所以要注释掉
region.save("e:/image_code.jpg")
#-------------------------------------------------------------------
#--------------ImageGrab.grab()直接可以区域截图,但是有bug,截图不全-------
'''
bbox = (780, 0, 1020, 800)
img = ImageGrab.grab()
img.save("E:image_code.jpg")
img.show()
'''
#-------------------------手动输入验证码:适用范围更广,但不够方便------------------------------
'''
response = opener.open(CaptchaUrl)
picture = response.read()
with open('e:/image.jpg', 'wb') as local:
local.write(picture)
# 保存验证码到本地
#------------对于不能用pytesser+ocr进行识别,手动打开图片手动输入--------
# 打开保存的验证码图片 输入
#SecretCode = raw_input('please enter the code: ')
#----------------------------------------------------------------------