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中实现常量(Const)功能
Jan 28 Python
Python 比较两个数组的元素的异同方法
Aug 17 Python
Python中enumerate()函数编写更Pythonic的循环
Mar 06 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 Python
Python Web编程之WSGI协议简介
Jul 18 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
Python 中Django安装和使用教程详解
Jul 03 Python
django mysql数据库及图片上传接口详解
Jul 18 Python
python Event事件、进程池与线程池、协程解析
Oct 25 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
python实现猜单词游戏
May 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
PHP图片加水印实现方法
2016/05/06 PHP
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
js 鼠标移动显示图片的简单实例
2013/12/25 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
js Object2String方便查看js对象内容
2014/11/24 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
BootStrap智能表单demo示例详解
2016/06/13 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
vue.js的状态管理vuex中store的使用详解
2019/11/08 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
pyshp创建shp点文件的方法
2018/12/31 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
HTML5 自动聚焦(autofocus)属性使用介绍
2013/08/07 HTML / CSS
花卉与景观设计系大学生求职信
2013/10/01 职场文书
大学毕业生自我鉴定
2013/11/05 职场文书
百度吧主申请感言
2014/01/12 职场文书
学校教师读书活动总结
2014/07/08 职场文书
推广活动策划方案
2014/08/23 职场文书
法院授权委托书格式
2014/09/28 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
python 管理系统实现mysql交互的示例代码
2021/12/06 Python
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技