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中的二进制位运算符
May 13 Python
Python中模块string.py详解
Mar 12 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
使用Django搭建web服务器的例子(最最正确的方式)
Aug 29 Python
Python如何访问字符串中的值
Feb 09 Python
python 实现人和电脑猜拳的示例代码
Mar 02 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
pytest配置文件pytest.ini的详细使用
Apr 17 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
May 10 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 Python
Python制作表白爱心合集
Jan 22 Python
Python turtle编写简单的球类小游戏
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中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
jquery键盘事件使用介绍
2011/11/01 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JavaScript中数据结构与算法(一):栈
2015/06/19 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
js中的闭包实例展示
2018/11/01 Javascript
微信小程序使用canvas自适应屏幕画海报并保存图片功能
2019/07/25 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
Python正则表达式和元字符详解
2018/11/29 Python
Python使用指定端口进行http请求的例子
2019/07/25 Python
python设置随机种子实例讲解
2019/09/12 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
如何避免常见的6种HTML5错误用法
2017/11/06 HTML / CSS
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
40岁生日感言
2014/02/15 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
家庭贫困证明范本(经典版)
2014/09/22 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
信用卡收入证明范本
2015/06/12 职场文书
红与黑读书笔记
2015/06/29 职场文书
外出学习心得体会范文
2016/01/18 职场文书
详解Python中下划线的5种含义
2021/07/15 Python