Python使用selenium实现网页用户名 密码 验证码自动登录功能

 更新时间:2018年05月16日 10:16:26   作者:clarkxhb  
这篇文章主要介绍了Python使用selenium实现网页用户名 密码 验证码自动登录功能,实现思路很简单,感兴趣的朋友跟随脚本之家小编一起学习吧

好久没有学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实现学生成绩管理系统

    这篇文章主要为大家详细介绍了Python实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python 循环终止语句的三种方法小结

    Python 循环终止语句的三种方法小结

    今天小编就为大家分享一篇Python 循环终止语句的三种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python中使用 xlwt 操作excel的常见方法与问题

    python中使用 xlwt 操作excel的常见方法与问题

    这篇文章主要给大家介绍了关于python中使用 xlwt 操作excel的常见方法与问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • 如何使用 Python Timedelta 月份计算日期

    如何使用 Python Timedelta 月份计算日期

    在本篇文章中,我们将通过 timedelta 学习如何在 Python 中使用日期时间, 我们将了解如何计算当前日期或任何其他日期六个月后的日期,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • Python打印酷炫日志的方法详解

    Python打印酷炫日志的方法详解

    在Python中,日志是一种非常重要的工具,可以帮助我们更好地了解程序的运行情况,本文将介绍如何使用logging模块来打印炫酷的日志,需要的可以参考一下
    2023-06-06
  • Python调用http-post接口的实现方式

    Python调用http-post接口的实现方式

    这篇文章主要介绍了Python调用http-post接口的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • pytorch和numpy默认浮点类型位数详解

    pytorch和numpy默认浮点类型位数详解

    这篇文章主要介绍了pytorch和numpy默认浮点类型位数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 修改python plot折线图的坐标轴刻度方法

    修改python plot折线图的坐标轴刻度方法

    今天小编就为大家分享一篇修改python plot折线图的坐标轴刻度方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python基础之类方法和静态方法

    python基础之类方法和静态方法

    这篇文章主要介绍了python类方法和静态方法,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10
  • python3调用R的示例代码

    python3调用R的示例代码

    本篇文章主要介绍了python3调用R的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02

最新评论