senium2学习:验证码

1.1     验证码

1.1.1      去掉验证码

如果是正式环境,则不安全。

1.1.2      设置万能验证码

   去掉验证码的主要问题是安全,为了应对在线系统的安全威胁,可以在线修改程序时不取消验证码,而是在程序中留一个后门,即设置一个万能验证码。只要用户输入这个验证码,程序就认为验证通过,否则就判断用户输入的验证码是否正确。

from random import randint

 

#生成一个100到999之间的随机数

verify = randint(1000,9999)

 

print("生成的随机数是:%d"%verify)

num = input("请输入随机数:")

print(num)

num = int(num)

扫描二维码关注公众号,回复: 111997 查看本文章

if num ==verify:

    print("登录成功!")

elif  num ==132741:

    print("登录成功!")

else:

print("验证码有误!")

1.1.3      验证码识别技术

Python-tesseract识别图片验证码。

1.1.4      记录cookie

通过向浏览器中添加cookie可以绕过登录的验证码。在登录的时候勾选记住密码,当下次访问该网站时就默认处于登录状态了。记住密码功能其实就记录了浏览器的cookie中。通过webdriver来操作浏览器的cookie,可以通过add_cookie()方法将用户名密码写入浏览器cookie,当再次访问时,服务器将直接读取浏览器的cookie进行登录。

from selenium import webdriver

import time

driver = webdriver.Firefox()

driver.get("http://192.168.1.51/oneCard/login")

#将用户名密码写入浏览器cookie

driver.add_cookie({'name':'username','value':'super'})

driver.add_cookie({'name':'password','value':'asd,./123*.'})

#再次访问网站,将会自动登录

driver.get("http://192.168.1.51/oneCard/login")

1.2     webDriver原理

basicConfig()所捕获的log信息。不过其开启的debug模式只能捕获到客户端像服务器发送的post()请求,而无法获取服务器所返回的应答信息。

from selenium import webdriver

import logging

logging.basicConfig(level = logging.DEBUG)

driver = webdriver.Chrome()

driver.get("http://www.baidu.com")

driver.find_element_by_id('kw').send_keys('selenium')

driver.find_element_by_id('su').click()

driver.quit()

 

猜你喜欢

转载自www.cnblogs.com/jxba/p/8993530.html