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中的文本处理
Apr 11 Python
python学习教程之使用py2exe打包
Sep 24 Python
手把手教你python实现SVM算法
Dec 27 Python
python pandas dataframe 按列或者按行合并的方法
Apr 12 Python
PyQt5每天必学之拖放事件
Aug 27 Python
Python基于opencv实现的简单画板功能示例
Mar 04 Python
Python分布式进程中你会遇到的问题解析
May 28 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
python实现对服务器脚本敏感信息的加密解密功能
Aug 13 Python
Python安装及Pycharm安装使用教程图解
Sep 20 Python
python上selenium的弹框操作实现
Jul 13 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 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
开源SNS系统-ThinkSNS
2008/05/18 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
表单的一些基本用法与技巧
2006/07/15 Javascript
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
GridView中获取被点击行中的DropDownList和TextBox中的值
2013/07/18 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
Jquery实现动态切换图片的方法
2015/05/18 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
谈谈JavaScript令人迷惑的==与+
2020/08/31 Javascript
python3.x上post发送json数据
2018/03/04 Python
使用Python和xlwt向Excel文件中写入中文的实例
2018/04/21 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
python with语句的原理与用法详解
2020/03/30 Python
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
教师党员一句话承诺
2014/03/28 职场文书
法定代表人授权委托书
2014/09/19 职场文书
电影开国大典观后感
2015/06/04 职场文书
小程序wx.getUserProfile接口的具体使用
2021/06/02 Javascript
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS