python实例:实现用户名,密码,验证码输入登录网页系统

python+selenium环境准备:

python 自行安装

一、安装selenium:pip install selenium

二、下载谷歌浏览器驱动

1、去http://chromedriver.storage.googleapis.com/index.html下载chromedriver.exe(根据chrome的版本下载对应的)

2、将下载好的chromedriver.exe解压后放到指定目录(我一般放在代码目录下)

三,安装第三方库,可参考文章:https://www.cnblogs.com/fppblog/p/11804196.html

pip install pillow

pip install pytesseract

引入:

from pytesseract import pytesseractfrom selenium import webdriverfrom PIL import Image

四,代码实现

import timeimport requestsfrom pytesseract import pytesseractfrom selenium import webdriverfrom PIL import Image

#创建一个浏览器对象browser = webdriver.Chrome()browser.maximize_window()#打开登录界面browser.get(‘http://cloud.xxxx.com/login‘)

# 识别验证码browser.save_screenshot(‘login.png‘)#获取验证码位置codepng = browser.find_element_by_xpath(‘//*[@id="imgCheckCode"]‘)location = codepng.locationsize = codepng.size#获取验证码位置left = location[‘x‘]top = location[‘y‘]bottom = top + size[‘height‘]right = left + size[‘width‘]

#打开页面截图login_png = Image.open(‘login.png‘)code_png = login_png.crop((left,top,right,bottom))   #这里需要传入一个元组code_png.save(‘code.png‘)#识别验证码#第一步:通过内置模块PIL打开文件image = Image.open(‘code.png‘)#第二步:识别图片中的内容image = image.convert(‘L‘)  #转化为灰度图threshold = 168             #设定的二值化阈值table = []                  #table是设定的一个表,下面的for循环可以理解为一个规则,小于阈值的,就设定为0,大于阈值的,就设定为1for i in range(256):    if i < threshold:        table.append(0)    else:        table.append(1)

image = image.point(table,‘1‘)  #对灰度图进行二值化处理,按照table的规则(也就是上面的for循环)image.show()result = pytesseract.image_to_string(image) #对去噪后的图片进行识别print(‘图片内容为:‘,result)

#定位账号密码验证码输入框acc_input = browser.find_element_by_xpath(‘//*[@id="username"]‘)time.sleep(2)acc_input.send_keys(‘EPxxxx001‘)pwd_input = browser.find_element_by_xpath(‘//*[@id="password"]‘)time.sleep(2)pwd_input.send_keys(‘123456‘)code_input = browser.find_element_by_xpath(‘//*[@id="checkCode"]‘)time.sleep(2)code_input.send_keys(result)time.sleep(5)

#点击登录按钮try:    browser.find_element_by_xpath(‘//*[@id="login"]/div[5]/button‘).click()    #判断系统状态    url = browser.current_url    resp = requests.get(url, timeout=5)    code = resp.status_code    print(‘登录返回码为:‘,code)    assert code == 200except Exception as e:    time.sleep(5)    #关闭    browser.close()    print(‘发生错误,登录失败!‘)else:    if url == ‘http://cloud.xxxx.com/lamp/analysis/data‘:        print(‘登录成功!‘)    else:        print(‘登录失败!‘)    time.sleep(3)    # 关闭    browser.close()

原文地址:https://www.cnblogs.com/fppblog/p/11797873.html

时间: 2024-08-01 19:36:08

python实例:实现用户名,密码,验证码输入登录网页系统的相关文章

OpenVPN 秘钥+用户名密码双重验证登录

为什么需要用户名密码验证登录 我们已经使用了CA证书.迪菲赫尔曼交换密钥.TLS-auth密钥这几种方式进行加密了, 可以说已经很安全了,为什么还要需要用户名秘密呢,一个VPN而已,搞得这么安全有什么用呢. 首先安全还是很重要的,其次就是管理这些秘钥和证书还是比较麻烦的,因为用户量比较多. 我不可能为每个用户都创建一套加密吧,每个用户创建一个秘钥比较麻烦, 多人使用一个秘钥又不具有唯一性,比如说有用户不在需要VPN的时候,我们就只能吊销证书. 但是如果多人使用一个秘钥的情况下,吊销证书了,其他的

vmware vcenter orchestrator configuration提示“用户名密码错误或登录失败超过次数被锁定”

首次登录,使用默认用户密码登录vmware/vmware vmware vcenter orchestrator configuration提示"用户名密码错误或登录失败超过次数被锁定".记得之前没有修改过密码,但是就是登录不了,只能通过重置找回密码了. Windows:在vcenter服务器上找到vmware安装目录下的passwd文件 Linux:/var/lib/vco/configuration/conf/passwd.properties Windows:使用文本编辑器打开p

WampServer PHP服务配置方法(允许外部访问、phpmyadmin设置为输入用户名密码才可登录等)

WampSever 指的是apache + mySQL + PHP 三合一套装,第一字母W,是指用于windows系统,我用的是2.0f版.用于Linux系统的,是LampSever,第一字母是L.请到官方网站:http://www.wampserver.com/ 下载最新版.下载地址: localhost和127.0.0.1是相同的,都指向本机网站服务器的根目录,比如:我电脑的网站根目录设定为:d:\wamp\www,本文所有用到localhost的地方,都可以用127.0.0.1来代替.可以

WAMPserver配置(允许外部访问、phpmyadmin设置为输入用户名密码才可登录等)

对于很多不熟悉PHP环境安装的朋友来说,用集成环境可以更快的上手,更方便的搭建PHP的运行环境,但是,WAMP的集成环境仅仅是将底层基础工作做好 了,有些个别关键的配置操作并没有集成到环境安装中,所以给大家带来不少麻烦,看到搜索引擎中很多朋友都在问为什么安装好WAMP后,只能本地访问?局域 网内禁止访问?或者为什么本地数据库PHPMYADMIN为什么也不能在外部局域网内访问呢?如何设置Mysql必须输入用户名和密码而不是直接登录进去 呢? 下面根据自己的亲身实践,说说WAMP配置的整个过程. 1

Python实现LDAP用户名密码验证

网上借鉴了不少东西,下面是python代码,备份后用. 思路,因为每个用户的组都不一样,这样就导致了dn不一致的情况, 据需要先根据用户名获取该用户的dn,然后再bind用户名和密码进行验证. 反正是实现了,至于方式对不对后续再研究了. 机器上要先安装python-ldap包 1 #coding: utf-8 2 import ldap 3 ''' 4 实现LDAP用户登录验证,首先获取用户的dn,然后再验证用户名和密码 5 ''' 6 7 ldappath = "ldap://xxxx&quo

用户名密码注册与登录的应用

一.本博客介绍的是登录界面的一些操作其中包括界面跳转,输入用户名密码注册登录等功能.1.界面的设计 <?xml version="1.0" encoding="utf-8"?> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:

python 格式化输出用户名/密码

格式化输出用户名/密码 内容来自网络 def get_account(num): accounts = [] for index in range(1, num+1): accounts.append( {"username": "user%s" % index, "password": str(index) * 6}, ) return accounts print get_account(5) 输出: [{'username': 'user1

python用户名密码限定次数登录

""" 1. 用户输入帐号密码进行登陆 2. 用户信息保存在文件内 3. 用户密码输入错误三次后锁定用户"""" test.txt里的内容为{"wang": "123", "niu": "234"} test_lock.txt的内容为["wang"] 具体代码如下: f=open('test.txt','r',encoding='utf-

安装openvpn并使用证书+用户名密码登录

openvpn是一个vpn工具,用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件,提供证书验证功能,也支持用户名密码认证登录方式,当然也支持两者合一,为服务器登录和连接提供更加安全的方式,可以在不同网络访问场所之间搭建类似于局域网的专用网络通道,配合特定的代理服务器,可用于访问特定受限网站(你懂得)或者突破内部网络限制. 安装 模拟运行环境:centos6系列系统 # 关闭selinux setenforce 0 sed -i '/^SELINUX=/