import tesserocr from PIL import Image from selenium import webdriver import time import sys import datetime import os import csv import re from win32com.client import Dispatch, DispatchEx import pythoncom from PIL import ImageGrab, Image import uuid import configparser
def yzm(path): ima = Image.open(path) image=ima.resize((480,200),Image.ANTIALIAS) image = image.convert('L')
threshold = 160 table = [] for i in range(256): if i < threshold: table.append(0) else: table.append(1)
image = image.point(table, "1") return tesserocr.image_to_text(image)[:5] # print ocr text from image def dl(browser,username,password): un = browser.find_element_by_id("username") un.clear() un.send_keys(username) pw = browser.find_element_by_id("password") pw.clear() pw.send_keys(password) time.sleep(1) if os.path.exists("Login_page.png"): os.remove("Login_page.png") if os.path.exists("Verification.png"): os.remove("Verification.png") browser.save_screenshot('Login_page.png') img=browser.find_element_by_id("jcaptchaImage") left = img.location['x'] top = img.location['y'] right = img.location['x'] + img.size['width'] bottom = img.location['y'] + img.size['height'] photo = Image.open('Login_page.png') box=(left,top,right,bottom) photo.crop(box).save('Verification.png') yz = browser.find_element_by_id("jcaptcha") yzmmmmm = yzm("Verification.png") print(yzmmmmm) yz.send_keys(yzmmmmm) time.sleep(1) lg = browser.find_element_by_id("login-btn") lg.click() time.sleep(1) try: err = browser.find_element_by_class_name("err-vaild") return err.text.strip() except: return None
def main(): conf = configparser.ConfigParser() conf.read("pmsrep.ini") fndir=conf.get("main","fndir")
from_addr = conf.get("email","from_addr") password =conf.get("email","password") to_addr =conf.get("email","to_addr") cc_addr=conf.get("email","cc_addr") smtp_server = "mail.wangsu.com"
username=conf.get("login","username") password=conf.get("login","password") loginnum = int(conf.get("login", "loginnum"))
chromedriver = "chromedriver.exe" options=webdriver.ChromeOptions() options.add_argument('--ignore-certificate-errors') browser = webdriver.Chrome(chromedriver,chrome_options=options) # Get local session of firefox browser.maximize_window() browser.get("https://portal.chinanetcenter.com/cas/login?service=https%3A%2F%2Fsi.chinanetcenter.com%2Fr_sec_login&appcode=serviceinsight") err=dl(browser,username,password) i=0 while err!=None and i<loginnum: i+=1 err = dl(browser,username, password) if err!=None: #send_text(from_addr,password,"无法登录,用户名或密码或验证码错误!需要重新执行程序.") sys.exit()
main()