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 28 Python
Python的Scrapy爬虫框架简单学习笔记
Jan 20 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
python @property的用法及含义全面解析
Feb 01 Python
pandas实现选取特定索引的行
Apr 20 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
windows下的pycharm安装及其设置中文菜单
Apr 23 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
python 提高开发效率的5个小技巧
Oct 19 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 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
JS实现php的伪分页
2008/05/25 PHP
PHP中获取变量的变量名的一段代码的bug分析
2011/07/07 PHP
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
PHP 过滤页面中的BOM(实现代码)
2013/06/29 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
2015/11/05 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
PHP时间函数使用详解
2019/03/21 PHP
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
下拉菜单点击实现连接跳转功能的js代码
2013/05/19 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
图片放大镜jquery.jqzoom.js使用实例附放大镜图标
2014/06/19 Javascript
js比较日期大小的方法
2015/05/12 Javascript
jQuery同步提交示例代码
2015/12/12 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
Javascript异步流程控制之串行执行详解
2020/09/27 Javascript
python list语法学习(带例子)
2013/11/01 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python入门之三角函数tan()函数实例详解
2017/11/08 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
基于pycharm 项目和项目文件命名规则的介绍
2021/01/15 Python
SQL数据库笔试题
2016/03/08 面试题
淘宝中秋节活动方案
2014/01/31 职场文书
《手指教学》反思
2014/02/14 职场文书
优秀技术工人先进材料
2014/02/17 职场文书
公关活动策划方案
2014/05/25 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
交通事故委托书范本(2篇)
2014/09/21 职场文书
党风廉正建设责任书
2015/01/29 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
《詹天佑》教学反思
2016/02/20 职场文书