# -*- 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:\Users\MrLevo\image1.jpg')#比较好理解
im =Image.open('C:\Users\MrLevo\image1.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: ')
#----------------------------------------------------------------------
'''
#--------------------图片增强+自动识别简单验证码-----------------------------
#time.sleep(3)防止由于网速,可能图片还没保存好,就开始识别
def image_file_to_string(file):
cwd = os.getcwd()
try :
os.chdir("C:\Users\MrLevo\Anaconda2\Lib")
return pytesser.image_file_to_string(file)
finally:
os.chdir(cwd)
im=Image.open("E:\\image_code.jpg")
imgry = im.convert('L')#图像加强,二值化
sharpness =ImageEnhance.Contrast(imgry)#对比度增强
sharp_img = sharpness.enhance(2.0)
sharp_img.save("E:\\image_code.jpg")
#http://www.cnblogs.com/txw1958/archive/2012/02/21/2361330.html
#imgry.show()#这是分布测试时候用的,整个程序使用需要注释掉
#imgry.save("E:\\image_code.jpg")
code= pytesser.image_file_to_string("E:\\image_code.jpg")#code即为识别出的图片数字str类型
print code
#打印code观察是否识别正确
#----------------------------------------------------------------------
if i <= 2: # 根据自己登录特性,我这里是验证码失败一次,重填所有,失败两次,重填验证码
elem_user.send_keys('S315080092')
elem_psw.send_keys('xxxxxxxxxx')
elem_code.send_keys(code)
click_login = driver.find_element_by_xpath("//img[@src='main_images/images/loginbutton.gif']")
click_login.click()
#time.sleep(5)#搜索结果页面停留片刻
#driver.save_screenshot('C:\Users\MrLevo\image.jpg')
#driver.close()
#driver.quit()
# -*- coding: utf-8 -*-
#Author:哈士奇说喵
from selenium import webdriver
import time
import sys
#shift+tab多行缩进(左)
reload(sys)
PostUrl = "http://lib.hrbeu.edu.cn/#"
driver=webdriver.Firefox()
driver.get(PostUrl)
elem_user = driver.find_element_by_name('number')
elem_psw = driver.find_element_by_name('passwd')
#选择我的图书馆,点击后才能看到输入账号密码
click_first = driver.find_element_by_xpath("//ul[@id='imgmenu']/li[4]")
click_first.click()
elem_user.send_keys('S315080092')
elem_psw.send_keys('xxxxxxxx')
#点击登录
click_second = driver.find_element_by_name('submit')
click_second.click()
time.sleep(5)
#登陆后选择
click_third = driver.find_element_by_xpath("//*[@id='mainbox']/div/div/ul/li/a")
click_third.click()
time.sleep(5)#搜索结果页面停留片刻
#driver.save_screenshot('C:\Users\MrLevo\image.jpg')
driver.close()
driver.quit()
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有