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 列表(List)操作方法详解
Mar 11 Python
Python编程django实现同一个ip十分钟内只能注册一次
Nov 03 Python
Python语言生成水仙花数代码示例
Dec 18 Python
pytorch + visdom CNN处理自建图片数据集的方法
Jun 04 Python
详解Django的CSRF认证实现
Oct 09 Python
Python多项式回归的实现方法
Mar 11 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
May 28 Python
浅析Python 引号、注释、字符串
Jul 25 Python
详解python中index()、find()方法
Aug 29 Python
python 提高开发效率的5个小技巧
Oct 19 Python
django注册用邮箱发送验证码的实现
Apr 18 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 16 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在字符断点处截断文字的实现代码
2011/04/21 PHP
php数字转汉字代码(算法)
2011/10/08 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
简单实现php上传文件功能
2017/09/21 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
js 表格隔行颜色
2009/12/02 Javascript
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
浅谈jquery选择器 :first与:first-child的区别
2016/11/20 Javascript
详解Jquery的事件操作和文档操作
2016/12/19 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
关于python 跨域处理方式详解
2020/03/28 Python
前端隐藏出边界内容的实现方法
2016/04/14 HTML / CSS
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
求职自荐信
2013/12/14 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
计算机系本科生求职信
2014/05/31 职场文书
党员对照检查材料
2014/09/22 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
最新最全的手机号验证正则表达式
2022/02/24 Javascript