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的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
Python实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
python移位运算的实现
Jul 15 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
python每5分钟从kafka中提取数据的例子
Dec 23 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
Django后台管理系统的图文使用教学
Jan 20 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
Python基于smtplib模块发送邮件代码实例
May 29 Python
python爬取youtube视频的示例代码
Mar 03 Python
Python下载商品数据并连接数据库且保存数据
Mar 31 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
php生成短域名函数
2015/03/23 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
理解javascript模块化
2016/03/28 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
JS生成和下载二维码的代码
2016/12/07 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
实例讲解React 组件
2020/07/07 Javascript
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
使用python爬取B站千万级数据
2018/06/08 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
踩坑:pytorch中eval模式下结果远差于train模式介绍
2020/06/23 Python
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
高中军训广播稿
2014/01/14 职场文书
电子商务专业学生职业生涯规划
2014/03/07 职场文书
校本研修个人总结
2015/02/28 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL