selenium处理验证码模块的安装和使用

PIL模块的安装

pytesser 模块的安装:

下载后得到 “pytesser_v0.0.1.zip”,是一个压缩文件,使用方法: 

1、在 “D:\For_Software\others\Python_PyDev\Python\Lib\site-packages” 路径下新建一个文件夹,命名 “pytesser” 。把 “pytesser_v0.0.1.zip” 里的文件解压到该目录:

2、将 “pytesser.py” 改名为 “__init__.py”。

3、打开 “__init__.py” 文件,将 “tesseract_exe_name” 变量的值改为 “‘D:/For_Software/others/Python_PyDev/python/Lib/site-packages/pytesser/tesseract’”(原值为 “‘tesseract’”)。

4、pytesser 模块依赖于 PIL 模块,如果是按照上面的方法安装 PIL 的话,需要把 “init.py” 文件里的 “import Image” 改成 “from PIL import Image” 。 

 

 

http://blog.csdn.net/mrlevo520/article/details/51901579

http://www.cnblogs.com/wolaiye320/p/5649462.html

 

from selenium import webdriver

from selenium.webdriver.support.ui import Select

from selenium.common.exceptions import NoSuchElementException

from selenium.common.exceptions import NoAlertPresentException

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.alert import Alert

import unittest, time, re

from PIL import ImageGrab

from PIL import Image,ImageEnhance

from pytesser import *

import pytesseract

import os

 

class Cjlr(unittest.TestCase):

def setUp(self):

self.driver = webdriver.Firefox()

self.driver.implicitly_wait(10)

self.base_url = "http://182.92.131.35:8088/"

 

def test_cjlr(self):

driver = self.driver

driver.get(self.base_url + "/")

driver.find_element_by_xpath(".//*[@id='mini-3']/span").click()

time.sleep(5)

#获取验证码

driver.save_screenshot('E:\\OCR\\aa.png') # 截取当前网页,该网页有我们需要的验证码

imgelement = driver.find_element_by_id('img_code') # 定位验证码

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("E:\\OCR\\aa.png") # 打开截图

frame4 = i.crop(rangle) # 使用Image的crop函数,从截图中再次截取我们需要的区域

frame4.save('E:\\OCR\\ac.png')

qq = Image.open('E:\\OCR\\ac.png')

imgry = qq.convert('L') # 图像加强,二值化

sharpness = ImageEnhance.Contrast(imgry) # 对比度增强

sharp_img = sharpness.enhance(2.0)

sharp_img.save("E:\\OCR\\ac.png")

code = image_file_to_string("E:\\OCR\\ac.png") # code即为识别出的图片数字str类型

print code

 

#登录

driver.find_element_by_id('tel_num').send_keys('18336091139')

driver.find_element_by_id('pwd').send_keys('123456')

time.sleep(10)

driver.find_element_by_id('randCode').send_keys(code)

driver.find_element_by_id("teacher_login").click()

转载于:https://my.oschina.net/u/3708232/blog/1575064

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值