一、环境搭建准备:

1.Python下载,安装以及环境配置
2.IDE pycharm 工具下载,安装
3.ie浏览器
4.selenium
5.pil:pil第三方库的下载,win下安装whl文件,下载后是一个exe,直接双击安装,它会自动安装到${Python_home}\Lib\site-packages中去
6.pytesser:依赖于pil,tessract,
下载后解压后直接放到${Python_home}\Lib\site-packages目录下,同时,新建一个pytesser.pth,内容就写pytesser(ps.这个内容跟文件名保持一致)
7.tessract下载安装(识别图片中的数字,文字)
下载后解压,将里面的tessdata文件夹,替换掉pytesser解压后的tessdata文件夹即可
二、验证码识别原理: 彩色转灰度,灰度转二值,二值图像识别
1)验证码识别脚本如下:
2)自动登录自动化脚本如下:
三、遇到的问题总结:
1)界面中的验证码图片截图,通过F12查看此元素的布局,大概确定一下验证码的位置,我是试了好几次才试出来的
2)在一个类中定义的方法,在另一个类中调用时,需要对此类建立个实例,通过实例去调用,且该方法的方法名必须加上self参数,不像java一样,可以通过类直接调用静态的方法。具体如下:方法定义为:调用写为:,不加self参数运行会报错,
3)因为tessract安装在其他目录下,但是识别验证码转换时需要调用这个,但是执行这个方法需要在有tesseract.exe目录下执行,不然执行会报错,解决办法,切换当前运行目录到该目录下,运行此方法调用
4)也可以选择手动输入验证码,raw.input(""),输入验证码后按回车
5)也可以用获取cookie的方式绕过验证码这块,但是有些网站貌似不支持cookie

Python+selenium+pil+tesseract实现自动识别验证码的更多相关文章

  1. Python+Selenium+PIL+Tesseract真正自动识别验证码进行一键登录

    Python 2.7 IDE Pycharm 5.0.3 Selenium:Selenium的介绍及使用,强烈推荐@ Eastmount的博客 PIL : Pillow-3.3.0-cp27-cp27 ...

  2. Python使用PIL模块生成随机验证码

    PIL模块的安装 pip3 install pillow 生成随机验证码图片 import random from PIL import Image, ImageDraw, ImageFont fro ...

  3. [python] 网络数据采集 操作清单 BeautifulSoup、Selenium、Tesseract、CSV等

    Python网络数据采集操作清单 BeautifulSoup.Selenium.Tesseract.CSV等 Python网络数据采集操作清单 BeautifulSoup.Selenium.Tesse ...

  4. python+selenium,实现带有验证码的自动化登录功能

    python+selenium的环境准备,请自行安装完成,这里直接贴代码,方便做项目时直接使用. import time from selenium import webdriver from PIL ...

  5. 使用Python + Selenium破解滑块验证码

    在前面一篇博客<使用 Python + Selenium 打造浏览器爬虫>中,我介绍了 Selenium 的基本用法和爬虫开发过程中经常使用的一些小技巧,利用这些写出一个浏览器爬虫已经完全 ...

  6. Python Selenium Cookie 绕过验证码实现登录

    Python Selenium Cookie 绕过验证码实现登录 之前介绍过博客园的通过cookie 绕过验证码实现登录的方法.这里并不多余,会增加分析和另外一种方法实现登录. 1.思路介绍 1.1. ...

  7. python+selenium破解极验验证登录

    1.前言: 目前很多网站会在正常的账号密码认证之外加一些验证码,以此来明确区分人/机行为,最典型的就是极验滑动验证.(如下图) 这里我们以简单实例说明如何实现自动校验类似验证. 2.步骤: 1)点击验 ...

  8. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  9. Python selenium自动化网页抓取器

    (开开心心每一天~ ---虫瘾师) 直接入正题---Python selenium自动控制浏览器对网页的数据进行抓取,其中包含按钮点击.跳转页面.搜索框的输入.页面的价值数据存储.mongodb自动i ...

随机推荐

  1. fread与fread_s读取文件(二进制文件)

    fread()是c库函数,利于移植,使用缓存,效率较read()高. 原型: size_t fread(void *buffer, size_t size, size_t count, FILE * ...

  2. PAT——1065. 单身狗

    “单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数:随后N行 ...

  3. initUrl方法

    private String initUrl(String preurl,String taskurl) { if(JavaUtil.match(taskurl, "/[a-z]+$&quo ...

  4. dataFrame 切片操作

    loc——通过行标签索引行数据 # iloc——通过行号索引行数据 # ix——通过行标签或者行号索引行数据(基于loc和iloc 和at 和iat 的混合) # 同理,索引列数据也是如此! # : ...

  5. 解决error possibly undefined macro AC_MSG_ERROR

    问题 出现如下缺少宏的问题 error: possibly undefined macro: AC_MSG_ERROR error: possibly undefined macro: AC_SUBS ...

  6. sort_area_retained_size之tom解释

    sort_area_retained_size 摘录一段asktom中tom的解释,对sort内存分配的方式进行了描述: it will allocate up to sort_area_retain ...

  7. MySQL8.0.12版本的数据库驱动

    jdbcDriver=com.mysql.cj.jdbc.DriverjdbcUrl=jdbc:mysql://127.0.0.1:3306/jtsys?useUnicode=true&cha ...

  8. c#网络加密传输

    网上已经有很多测试,我就不多说了.先说说我的测试. 1.net framework 都应该合适. 2.RSACryptoServiceProvider类在.net core 下无法调用xml导出方法( ...

  9. Linux常用到的一些命令

    1.poweroff 关闭系统(1) 2.halt 关闭系统(2) 3.reboot 重启系统 4.pwd 查看当前所在目录的绝对路径 5.mkdir 文件名 创建一个目录文件 6.rm 文件名 删除 ...

  10. Linux查看当前登录用户并踢出用户

    1.查看当前登录用户 [wilsh@lcl ~]$ whatis w w                    (1)  - Show who is logged on and what they a ...