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使用MYSQLDB实现从数据库中导出XML文件的方法
May 11 Python
详解Python的Twisted框架中reactor事件管理器的用法
May 25 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
Python中return self的用法详解
Jul 27 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
Jan 26 Python
django 消息框架 message使用详解
Jul 22 Python
Python Web程序搭建简单的Web服务器
Jul 31 Python
Django文件存储 默认存储系统解析
Aug 02 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 Python
matplotlib对象拾取事件处理的实现
Jan 14 Python
Python基础之教你怎么在M1系统上使用pandas
May 08 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 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
2014/06/19 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
PHP微信红包生成代码分享
2016/10/06 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
document节点对象的获取方式示例介绍
2013/12/24 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
[05:28]刀塔密之一:团结则存
2014/07/03 DOTA
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python httplib模块使用实例
2015/04/11 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
如何用python开发Zeroc Ice应用
2021/01/29 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
敏捷开发的主要原则都有哪些
2015/04/26 面试题
企业年检委托书范本
2014/10/14 职场文书
中秋客户感谢信
2015/01/22 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
python关于集合的知识案例详解
2021/05/30 Python
总结一些Java常用的加密算法
2021/06/11 Java/Android
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫