Python 自动化之验证码识别

之前公司的验证码比较简单,可以采取直接破解的方式进行登录

部分代码如下:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Selectimport unittest,time,re,sys
from PIL import Image
import pytesseract

reload(sys)
sys.setdefaultencoding(‘utf-8‘)

class Ypt(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(30)
        self.base_url = "http://*********.com"
        self.verificationErrors = []
        self.accept_next_alert = True

    def get_streen(self):
        driver = self.driver
        driver.save_screenshot(‘D://aa.png‘)  #截取当前网页,该网页有我们需要的验证码
        imgelement = driver.find_element_by_xpath(‘//*[@id="id_checkCode"]‘)  #定位验证码
        location = imgelement.location  #获取验证码x,y轴坐标
        size=imgelement.size  #获取验证码的长宽
        rangle=(int(location[‘x‘]),int(location[‘y‘]),int(location[‘x‘]+size[‘width‘]),int(location[‘y‘]+size[‘height‘])) #写成我们需要截取的位置坐标
        i=Image.open("D://aa.png") #打开截图
        frame4=i.crop(rangle)  #使用Image的crop函数,从截图中再次截取我们需要的区域
        frame4.save(‘D://frame4.png‘)
        img = Image.open(‘D://frame4.png‘)
        print img.load()
        aa =  .image_to_string(img)
        print u"识别的验证码为:"
        print aa
        if aa == "":               #如果识别为空,则再一次识别
            driver.find_element_by_xpath(‘//*[@id="id_checkCode"]‘).click()
            self.get_streen()
        return aa

    def test_ypt(self):
        now_time = open("yuheng.txt","a")
        driver = self.driver
        driver.maximize_window()
        driver.get(self.base_url + "/userLoginOut.screen")
        driver.find_element_by_id("j_username").clear()
        driver.find_element_by_id("j_username").send_keys("username")
        driver.find_element_by_id("j_password").clear()
        driver.find_element_by_id("j_password").send_keys("password")
        driver.find_element_by_id("id_imgCode").clear()
        driver.find_element_by_id("id_imgCode").send_keys(self.get_streen())
        driver.find_element_by_id("btn-login").click()
        driver.find_element_by_id("C5A000005").click()
        driver.find_element_by_link_text(u"概况数据").click()
        self.assertEqual(u"万里通通用积分云平台-数据中心-数据概况", driver.title)
        time.sleep(8)def is_element_present(self, how, what):
        try: self.driver.find_element(by=how, value=what)
        except NoSuchElementException, e: return False
        return True

    def is_alert_present(self):
        try: self.driver.switch_to_alert()
        except NoAlertPresentException, e: return False
        return Trueif __name__ == "__main__":
    unittest.main()
时间: 2024-11-05 15:57:06

Python 自动化之验证码识别的相关文章

Python 代码实现验证码识别

Python 代码实现验证码识别 测试开发社区  1周前 源 /  j_hao104 一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域…… 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行图形的计算.处理和显示的相关原理与算法.图形通常由点.线.面.体等几何元素和灰度.色彩.线型.线宽等非几何属性组成.计算机涉及到的几何图形处理一般有 2维到n维图形处理,边界区分,面积计算,体积计算,扭曲变形校正.

基于SVM的python简单实现验证码识别

验证码识别是一个适合入门机器学习的项目,之前用knn 做过一个很简单的,这次用svm来实现.svm直接用了开源的库libsvm.验证码选的比较简单,代码也写得略乱,大家看看就好. 1. 爬取验证码图片 1 import urllib 2 from urllib import request 3 4 5 def download_pics(pic_name): 6 url = 'http://smart.gzeis.edu.cn:8081/Content/AuthCode.aspx' 7 res

python tesseract-ocr 基础验证码识别功能(Windows)

一.环境 windows 7 x64 Python 3 + 二.安装 1.tesseract-ocr安装 http://digi.bib.uni-mannheim.de/tesseract/ 2.pytesseract安装 pip install pytesseract 3.Pillow 安装 pip install pillow 三.使用 #! -*- coding:utf-8 -*- import pytesseract from PIL import Image pytesseract.p

python cv2在验证码识别中的使用

使用函数cv2.imread(filepath,flags)读入一副图片 filepath:要读入图片的完整路径 flags:读入图片的标志 cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道 cv2.IMREAD_GRAYSCALE:读入灰度图片 cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道 cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要转换的图片,p2是转换成何种格式. cv2.COLOR_BGR2

字符型图片验证码识别完整过程及Python实现

1   摘要 验证码是目前互联网上非常常见也是非常重要的一个事物,充当着很多系统的 防火墙 功能,但是随时OCR技术的发展,验证码暴露出来的安全问题也越来越严峻.本文介绍了一套字符验证码识别的完整流程,对于验证码安全和OCR识别技术都有一定的借鉴意义. 2   关键词 关键词:安全,字符图片,验证码识别,OCR,Python,SVM,PIL 3   免责声明 本文研究所用素材来自于某旧Web框架的网站 完全对外公开 的公共图片资源. 本文只做了该网站对外公开的公共图片资源进行了爬取, 并未越权 

基于python语言的tensorflow的‘端到端’的字符型验证码识别源码整理(github源码分享)

基于python语言的tensorflow的‘端到端’的字符型验证码识别 1   Abstract 验证码(CAPTCHA)的诞生本身是为了自动区分 自然人 和 机器人 的一套公开方法, 但是近几年的人工智能技术的发展,传统的字符验证已经形同虚设. 所以,大家一方面研究和学习此代码时,另外一方面也要警惕自己的互联网系统的web安全问题. Keywords: 人工智能,Python,字符验证码,CAPTCHA,识别,tensorflow,CNN,深度学习 2   Introduction 全自动区

Python验证码识别处理实例

一.准备工作与代码实例 1.PIL.pytesser.tesseract (1)安装PIL:下载地址:http://www.pythonware.com/products/pil/(CSDN下载) 下载后是一个exe,直接双击安装,它会自动安装到C:\Python27\Lib\site-packages中去, (2)pytesser:下载地址:http://code.google.com/p/pytesser/,(CSDN下载) 下载解压后直接放C:\Python27\Lib\site-pack

Python验证码识别处理实例(转载)

版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处http://blog.csdn.net/evankaka 一.准备工作与代码实例 1.PIL.pytesser.tesseract (1)安装PIL:下载地址:http://www.pythonware.com/products/pil/(CSDN下载) 下载后是一个exe,直接双击安装,它会自动安装到C:\Python27\Lib\site-packages中去, 个人补充:上面是32位,个人查到64位地址 http://ww

Python验证码识别处理

阅读目录 准备工作 验证 实例 大部分的系统在用户登录时都要求用户输入验证码,验证码的类型的很多,有字母数字的,有汉字的,甚至还要用户输入一条算术题的答案的,对于系统来说使用验证码可以有效果的防止采用机器猜测方法对口令的刺探,在一定程度上增加了安全性 准备工作 处理验证码需要PIL库.pytesser库的支持 1.安装PIL库 官网下载 ,下载后是exe应用程序,直接双击安装,它会自动安装到Python的lib\site-packages目录下 2.安装pytesser库 官网下载 | 博客园下