Python使用selenium实现网页用户名 密码 验证码自动登录功能


Posted in Python onMay 16, 2018

好久没有学python了,反正各种理由吧(懒惰总会有千千万万的理由),最近网上学习了一下selenium,实现了一个简单的自动登录网页,具体如下。

1.安装selenium:

如果你已经安装好anaconda3,直接在windows的dos窗口输入命令安装selenium:

python -m pip install --upgrade pip

查看版本pip show selenium

2.接着去http://chromedriver.storage.googleapis.com/index.html下载chromedriver.exe(根据chrome的版本下载对应的)

3.将下载好的chromedriver.exe解压后放到指定目录

4.安装tesseract-ocr.exe 配置环境变量

5.安装pytesseract : pip install pytesseract

6.python脚本

思路:6.1登录页面按F12检查元素,获取用户名 密码 验证码 验证码图片的元素id

 6.2.调用chromedriver

 6.3.截取验证码图片的位置

 6.4.pytesseract识别图片中字符,最后验证码识别为空!!???这个待解决

 6.5.脚本如下:

from selenium import webdriver
from PIL import Image
import pytesseract
import os,time
chromedriver = "D:\Program Files\Anaconda3\selenium\webdriver\chromedriver.exe" #这里写本地的chromedriver 的所在路径
os.environ["webdriver.Chrome.driver"] = chromedriver #调用chrome浏览器
driver = webdriver.Chrome(chromedriver)
driver.get("http://xxxx.com") #该处为具体网址
driver.refresh() #刷新页面
driver.maximize_window() #浏览器最大化
#获取全屏图片,并截取验证码图片的位置
driver.get_screenshot_as_file('a.png')
location = driver.find_element_by_id('imgValidateCode').location
size = driver.find_element_by_id('imgValidateCode').size
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
a = Image.open("a.png")
im = a.crop((left,top,right,bottom))
im.save('a.png')
time.sleep(1)
#打开保存的验证码图片
image = Image.open("a.png")
#图片转换成字符
vcode = pytesseract.image_to_string(image)
print(vcode)
#填充用户名 密码 验证码
driver.find_element_by_id("staffCode").send_keys("username")
driver.find_element_by_id("pwd").send_keys("password")
driver.find_element_by_id("validateCode").send_keys(vcode)
#点击登录 
driver.find_element_by_id("loginBtn").click()

总结

以上所述是小编给大家介绍的Python实现网页用户名 密码 验证码自动登录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
深入理解Django中内置的用户认证
Oct 06 Python
python遍历序列enumerate函数浅析
Oct 17 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
Python pip install如何修改默认下载路径
Apr 29 Python
Python绘制动态水球图过程详解
Jun 03 Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 Python
Python类及获取对象属性方法解析
Jun 15 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
Python实现石头剪刀布游戏
Jan 20 Python
python+selenium爬取微博热搜存入Mysql的实现方法
Jan 27 Python
Python使用DFA算法过滤内容敏感词
Apr 22 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 #Python
Python selenium实现微博自动登录的示例代码
May 16 #Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 #Python
Python(Django)项目与Apache的管理交互的方法
May 16 #Python
Python检测网络延迟的代码
May 15 #Python
在windows下Python打印彩色字体的方法
May 15 #Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 #Python
You might like
Zerg兵种介绍
2020/03/14 星际争霸
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
如何通过Linux命令行使用和运行PHP脚本
2015/07/29 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
2020/04/27 PHP
javascript 播放器 控制
2007/01/22 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
Jquery实现点击切换图片并隐藏显示内容(2种方法实现)
2013/04/11 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
AngularJS基础 ng-readonly 指令简单示例
2016/08/02 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
jQuery插件HighCharts绘制2D半圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
2019/11/13 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
python实现关键词提取的示例讲解
2018/04/28 Python
使用python打印十行杨辉三角过程详解
2019/07/10 Python
python字符串替换re.sub()方法解析
2019/09/18 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
2020/02/27 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
phpquery中文手册
2021/03/18 PHP
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
腾讯公司的一个sql题
2013/01/22 面试题
互联网创业计划书的书写步骤
2014/01/28 职场文书
合同权益转让协议书模板
2014/11/18 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
德劲DE1108畅想
2021/04/22 无线电
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL