以易码网站的注册界面为例

python版本:2.7

所需要的代码库:PIL,selenium,pytesser

selenium安装

pip install selenium

代码库安装地址稍后给出,也可自行百度

先上完整代码

有需要请在下方留言,由于水平有限,部分代码并不严谨

from selenium import webdriver
import time
import sys,os
from PIL import Image,ImageDraw
import re
import time
from PIL import ImageGrab
from pytesser import *
reload(sys)
sys.setdefaultencoding('utf-8')
#getPixel为去噪算法
def getPixel(image,x,y,G,N):  L = image.getpixel((x,y))  if L > G:  L = True  else:  L = False  nearDots = 0  if L == (image.getpixel((x - 1,y - 1)) > G):  nearDots += 1  if L == (image.getpixel((x - 1,y)) > G):  nearDots += 1  if L == (image.getpixel((x - 1,y + 1)) > G):  nearDots += 1  if L == (image.getpixel((x,y - 1)) > G):  nearDots += 1  if L == (image.getpixel((x,y + 1)) > G):  nearDots += 1  if L == (image.getpixel((x + 1,y - 1)) > G):  nearDots += 1  if L == (image.getpixel((x + 1,y)) > G):  nearDots += 1  if L == (image.getpixel((x + 1,y + 1)) > G):  nearDots += 1  if nearDots < N:  return image.getpixel((x,y-1))  else:  return None  # 降噪
# 根据一个点A的RGB值,与周围的8个点的RBG值比较,设定一个值N(0 <N <8),当A的RGB值与周围8个点的RGB相等数小于N时,此点为噪点
# G: Integer 图像二值化阀值
# N: Integer 降噪率 0 <N <8
# Z: Integer 降噪次数
# 输出
#  0:降噪成功
#  1:降噪失败
def clearNoise(image,G,N,Z):  draw = ImageDraw.Draw(image)  for i in xrange(0,Z):  for x in xrange(1,image.size[0] - 1):  for y in xrange(1,image.size[1] - 1):  color = getPixel(image,x,y,G,N)  if color != None:  draw.point((x,y),color)  #测试代码
def imagetext():os.chdir("C:\Python27\Scripts")time.sleep(2)  #截图,获取需要识别的区域  #坐标根据自己的分辨率自行调整x = 1069  y = 557  m = 1144n = 586i=1box = (x,y,m,n)img = ImageGrab.grab(box)#保存截取的验证码图片img.save("D:/home/lyt/yzm2/1.jpg")      #截图完毕后,开始图像识别#判断识别出的验证码是否为四位数,因为pytesser对有干扰的图片识别率较低,故采用多次截图并识别im = Image.open("D:/home/lyt/yzm2/1.jpg")  text = image_to_string(im)text = text.replace(' ','')text = re.findall(r"\d+\.?\d*",text)b = len(str(text))while (b != 8):print i#b为验证码数组长度,b=8说明识别成功,否则点击网页验证码图片刷新验证码再次截图并识别button = browser.find_element_by_id('CaptchaImg')button.click()img = ImageGrab.grab(box)  i = 2 #截图保存路径src = 'D:/home/lyt/yzm2/' + bytes(i) + '.jpg'#转灰度并去噪后保存路径src1 = 'D:/home/lyt/yzm3/' + bytes(i) + '.jpg'img.save(src)image = Image.open(src)  #将图片转换成灰度图片  image = image.convert("L")  #去噪,G = 50,N = 1,Z = 1#N,Z可根据自己需要更改,目前识别成功率在1/3左右clearNoise(image,50,1,1)  #保存图片  image.save(src1)    #截图处理完毕后,开始图像识别  im = Image.open(src1)  text = image_to_string(im)text = text.replace(' ','')text = re.findall(r"\d+\.?\d*",text)b = len(str(text))print text[0]return text[0]
#以下为selenium对浏览器的操作
browser = webdriver.Firefox()
browser.maximize_window()
browser.get("http://www.51ym.me/user/Register.aspx")
input_username = browser.find_element_by_id('username')
input_username.send_keys("ghoulq12583")
input_pwd = browser.find_element_by_id('password')
input_pwd.send_keys("1234567890")
input_rapwd = browser.find_element_by_id('rapwd')
input_rapwd.send_keys("1234567890")
input_qq = browser.find_element_by_id('qq')
input_qq.send_keys("3287611848")
#开始验证码识别
a = imagetext()
input_verify = browser.find_element_by_id('verify')
input_verify.send_keys(a)
button = browser.find_element_by_id('SubmitBtn')
button.click()

Python+Selenium 含验证码的登录处理相关推荐

  1. Python+Selenium实现新浪微博自动登录

    Python+Selenium实现新浪微博自动登录 环境说明:win10+eclipse+chrome 备注:需要下载chrome浏览器的驱动(地址: https://sites.google.com ...

  2. 软件测试案例|Python+Selenium+unittest完成对登录页面的自动化测试

    软件测试案例:Python+Selenium+unittest完成对登录页面的自动化测试 01.实验简介 本实验使用Python语言结合Selenium UI测试工具,利用unittest组织测试用例 ...

  3. python selenium手动输入验证码_案例:selenium实现登录百度(如有验证码,需要手动输入)...

    func.py baidu_login.py中(如有验证码,需要手动输入) # 导入webdriver import os import time import re from lxml import ...

  4. python+selenium识别验证码实例

    上篇文章<python+selenium+pytesseract识别图片验证码>对验证码进行识别后,应用到具体实例过程中,发现该算法识别可能会出现识别错误或者没有输出结果的情况,所以在具体 ...

  5. Python+Selenium实现12306模拟登录

    最近在学python爬虫,学习到了selenium的使用,看网上有很多使用selenium模拟登录12306网站的文章,于是自己也尝试了一下.期间遇到了一些问题,也参考了很多大佬的文章最终得到了解决, ...

  6. 使用Python+Selenium+图灵验证码识别平台,识别B站/bilibili的中文验证码,并自动登陆B站

    一直想用python写一个程序帮我自动登陆B站,完成一些点击任务,懂的都懂 =v= 最近终于腾出时间来搞了,其实最难的部分就是中文验证码的识别.这个借助API接口也能轻松搞定.下面分享一下全部源码(前 ...

  7. java自动输入验证码_【自动化测试】使用Java+selenium填写验证码成功登录

    这是我第一次发博客,若有问题,请多多指教! 本次是为了帮忙解决,如果在平时自动化遇到有验证码填写的情况,我们如何成功登录情况. 思路: 首先我们先将验证码复制并保存成一个图片,然后使用tesserac ...

  8. Python+selenium+chromedriver实现自动登录微博并发微博

    python环境这里就是默认安好的状态 首先要确保安装了selenium 在cmd/终端界面输入 pip install selenium 如果是pycharm的话那就是 Pycharm->Pr ...

  9. Python selenium实现微博自动登录

    (一)编程环境 操作系统:Win 10 编程语言:Python 3.6 (二)安装selenium 这里使用selenium实现. 如果没有安装过python的selenium库,则安装命令如下 pi ...

最新文章

  1. Nginx为什么快到根本停不下来?
  2. 南京大学计算机2010年本科录取名单,2010高考本科录取名单
  3. IP协议详解---Linux学习笔记
  4. ExecutorService学习小记
  5. 基于JAVA+SpringMVC+Mybatis+MYSQL的账单管理系统
  6. (转载)Memcached预定义常量
  7. python设置很大的刻度_【Matplotlib】设置刻度(1)
  8. Vim命令大全(linux)
  9. 程序员毕业实习报告,5000字
  10. java 方法重载 应用举例,Java中的方法重载应用
  11. 【信息系统项目管理师】2018下半年系统集成项目管理工程师案例分析
  12. 点击换图 秀米的svg_时隔五年再用秀米,我发现了这个超强玩法。
  13. DHT11温湿度传感器(zigbee)
  14. 今日头条数据分析师分享有感
  15. dell笔记本外接显示器_戴尔笔记本怎样外接显示器
  16. MODBUS寄存器从40000开始而不从0开始,有什么特别的说法吗,还是仅仅是大家都习惯
  17. 打开应用商店显示服务器出错了,Win10应用商店提示“我们这边出错了”的三种解决方法...
  18. 有没有一瞬间不想活了?
  19. matlab 读取pts_matlab读取tiff卫星遥感图像和地理信息并转化为点云
  20. mysql数据库查询优化技术 视频教程_炼数成金MySql视频教程 MySQL数据库查询优化技术 15周课程深入学习MySQL数据库查询...

热门文章

  1. html中视屏音量大小,调整视频音量 编辑视频怎么调节视频中的音量大小/批量调节视频音量...
  2. 如何在VS Code中运行C或C++程序
  3. 多字节与宽字节的区别
  4. 面经汇总--校招--北京顺丰同城
  5. 插入(insert)
  6. 玩吃鸡台式计算机配置,玩转绝地求生:大逃杀!i5-7400配GTX1060玩游戏的台式机配置推荐...
  7. .NET 技术FAQ
  8. 浙江大学计算机网络实验报告,浙江大学实验报告.doc
  9. 信息网络传播中的服务器标准,信息网络传播权侵权认定标准适用研究
  10. Office系列版本安装包下载