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端口扫描系统实现方法
Nov 19 Python
Python通过递归遍历出集合中所有元素的方法
Feb 25 Python
使用py2exe在Windows下将Python程序转为exe文件
Mar 04 Python
python+PyQT实现系统桌面时钟
Jun 16 Python
对python 操作solr索引数据的实例详解
Dec 07 Python
基于python的Paxos算法实现
Jul 03 Python
Python循环中else,break和continue的用法实例详解
Jul 11 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
解决Python3下map函数的显示问题
Dec 04 Python
用Python在Excel里画出蒙娜丽莎的方法示例
Apr 28 Python
对Keras中predict()方法和predict_classes()方法的区别说明
Jun 09 Python
python如何为list实现find方法
May 30 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
第十一节 重载 [11]
2006/10/09 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
一个简单的网页密码登陆php代码
2012/07/17 PHP
PHP中对缓冲区的控制实现代码
2013/09/29 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
JavaScript数组合并的多种方法
2016/05/22 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
vue实现商城上货组件简易版
2017/11/27 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
Python3 导入上级目录中的模块实例
2019/02/16 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
应届生保险求职信
2013/11/11 职场文书
文案策划求职信
2014/03/18 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
2015年教育实习工作总结
2015/04/24 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书