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 相关文章推荐
Python模拟登录12306的方法
Dec 30 Python
详解Python3中的Sequence type的使用
Aug 01 Python
Python松散正则表达式用法分析
Apr 29 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
Python正规则表达式学习指南
Aug 02 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
python列表生成式与列表生成器的使用
Feb 23 Python
Python列表list排列组合操作示例
Dec 18 Python
linux查找当前python解释器的位置方法
Feb 20 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 Python
Python列表去重复项的N种方法(实例代码)
May 12 Python
用Python自动清理系统垃圾的实现
Jan 18 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
thinkPHP中分页用法实例分析
2015/12/26 PHP
php判断目录存在的简单方法
2019/09/26 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
用javascript关闭本窗口不弹出询问框的方法
2014/09/12 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
微信小程序实现登录注册功能
2020/12/29 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python在控制台输出进度条的方法
2015/06/20 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
python实现代码统计器
2019/09/19 Python
python实现简单银行管理系统
2019/10/25 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
python 操作excel表格的方法
2020/12/05 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
企业消防安全制度
2014/02/02 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
迁户口计划生育证明
2014/10/19 职场文书
2015年小学语文工作总结
2015/05/25 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
采购员工作总结范文
2015/08/12 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python