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 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 Python
python爬虫的工作原理
Mar 05 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 Python
Python3 chardet模块查看编码格式的例子
Aug 14 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
Python 跨.py文件调用自定义函数说明
Jun 01 Python
PyTorch 中的傅里叶卷积实现示例
Dec 11 Python
解决pytorch 模型复制的一些问题
Mar 03 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 addslashes和mysql_real_escape_string
2010/01/24 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
2010/10/12 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
PHP pear安装配置教程
2016/05/14 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
2016/09/08 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
Redux实现组合计数器的示例代码
2018/07/04 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
浅谈js数组splice删除某个元素爬坑
2020/10/14 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Python中的is和id用法分析
2015/01/26 Python
python学习教程之使用py2exe打包
2017/09/24 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
Hudson Jeans官网:高级精制牛仔裤
2018/11/28 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
2014年加油站站长工作总结
2014/12/23 职场文书
2015年端午节活动方案
2015/05/05 职场文书
公司员工手册范本
2015/05/14 职场文书
父亲节感言
2015/08/03 职场文书
用php如何解决大文件分片上传问题
2021/07/07 PHP