mg4377娱乐娱城官网_mg4377娱乐手机版_www.mg4377.com

python完毕验证码,完毕轻巧图片验证码登入

时间:2019-06-05 17:20来源:mg4377娱乐手机版
正文实例讲述了Python2.7 pytesser完成轻巧验证码的识别方法。分享给我们供大家参照他事他说加以考查,具体如下: Python完毕3个总结的验证码程序,python完成验证码 先生讲完random函数,

正文实例讲述了Python2.7 pytesser完成轻巧验证码的识别方法。分享给我们供大家参照他事他说加以考查,具体如下:

Python完毕3个总结的验证码程序,python完成验证码

  先生讲完random函数,本人写的,虽然和教授示例的不那么好看,智能,可是也要好想出去的,所以记录一下,代码就必要自身不停的大团结演练,实战,能力增高啊!不然就像是大家这几个大繁多靠自学的人,何时能学会。还应该有正是,此番听先生的,把团结的代码增添注释,所以本次把很简短的代码都写上了讲授,而且相当的大白话,不管有未有接触过python的,笔者相信仔细看了,明确能看懂。若是看完,再自个儿尝试着默写出来,那正是更加好到了,好了进去正题:

python完毕验证码,完毕轻巧图片验证码登入。本人写的:

__Author__ = "Zhang Peng"
import random
#导入random模块

code='abcdefdhigkmlnopqrstuvwxyzABCDEFDHIGKMLNOPQRSTUVWXYZ0123456789'
#定义一个验证码的库,赋给变量code

checkcode=''
#定义一个空字符串,赋给checkcode

count=0
#需要对循环进行计数,初始值设为0

while count<6:
  #添加一个while循环,当count小于6的时候就会一直循环

  i=random.choice(code)
  #choice是random里面的一个方法,就是把code里面的值随机取出一个来赋给i

  checkcode =i
  #把checkcode i重新赋值给checkcode,每循环一次checkcode长度都会增加一位

  count =1
  #把count 1赋值给count,每循环一次,count都会加1
else:
  #else是while循环的一个用法,就是当count不小于6的时候做什么事
  pass
  #我这里写的是,当count不小于6就跳过这个循环

print(checkcode)
#最后打印一下checkcode,这里的checkcode每运行一次都会是不同的值

结果:

M9Y7sE

和睦的代码,望着最别扭的便是,自身定义的那一群code,显得很笨重,上边看看老师给的身体力行(这么些示例,是透过自己归纳加工后的,老师演示的内部只可以够打字与印刷出大写字母和数字的多少人验证码):

__Author__ = "Zhang Peng"
import random
#导入random模块

checkcode=''
#定义一个空字符串,赋给checkcode

for i in range(6):
  #这里一个for循环,是让i在range(6)中循环,每次循环取出
  # 来的值,赋给i;这里range(6)=(0,1,2,3,4,5)

  current=random.randrange(0,6)
  #randrange是random中的一个方法,随机从range(0,6)中取一个数出来,赋值给current

  if current<2:
    #这里用了一个if语句,如果current小于2,做什么事

    checkcode =chr(random.randint(65,90))
    #如果current等于i,randint也是random中的一个方法,chr是python中的内置函数
    #意思是把数字转换成ascll码表对应的字符,65到90正好对应ascll码中的大写A到大写Z
    #这句函数意思是chr取出一个字母加上checkcode,重新赋值给checkcode

  elif current >= 2 and current < 4 :
    #elif,如果current大于等于2,且小于4做什么。

    checkcode  = chr(random.randint(97, 122))
    # 其他类似于上一条,其中97到122正好对应ascll码中的小写a到小写z

  else:
    #if的用法,如果current不符合上面条件,做什么事

    checkcode =str(random.randint(0,9))
    #str也是python的内置函数,就是把什么转换为字符串,这里是把0到9的任意一个整数
    #取出来,加上checkcode,重新赋值给checkcode

print(checkcode)
#最后打印一下checkcode

运作结果:

vgW2u3

友善加过过后,认为增加了三个elif,显的照旧有些笨重,希望今后能够商量出更清楚的代码。

总结

如上便是本文关于Python实现三个简约的验证码程序的全体内容,希望对大家享有扶助。感兴趣的对象能够承接参照本站:Python编制程序django达成同3个ip十分钟内只可以登记贰遍、不难精晓Python中的两种函数、Python算法输出1-玖数组产生的结果为拾0的具有运算式等,招待我们留言提议宝贵意见,共同调换发展。感激朋友们对本站的帮衬!

先生讲完random函数,自身写的,纵然和教师职员和工人示例的不那么美观,智能,不过也融洽想出来...

恋人说集团要在测试意况做接口测试,登录时供给传入准确的图样的验证码,本着懒省事的规则,推荐她把测试景况的图片验证码写死,我们商家也是那般做的^_^。劝说无果/(ㄒoㄒ)/~~,只可以通过 OC福睿斯技能来甄别图片验证码了,看了须臾间他们的验证码,长这么图片 1,幸而挺轻易辨别(背景观是透明的,有个坑必要管理)。

爱人说公司要在测试景况做接口测试,登入时需求传入精确的图片的验证码,本着懒省事的尺码,推荐他把测试碰到的图纸验证码写死,大家公司也是这样做的^_^。劝说无果/(ㄒoㄒ)/~~,只可以通过 OCCRUISER本领来分辨图片验证码了,看了一下他们的验证码,长这么图片 2,幸好挺轻易辨认(背景观是晶莹的,有个坑须要管理)。

首先,安装Python2.7版本

Python 达成了图片验证码登入 demo,用到的第一方模块有 requests, PIL, pytesseract。

Python 达成了图片验证码登入 demo,用到的第3方模块有 requests, PIL, pytesseract。

然后,安装PIL工具,下载的地址是:,pytesser的选用须求PIL库的支撑。

 1 # coding: utf-8
 2 import requests
 3 from PIL import Image
 4 from pytesseract import image_to_string, pytesseract
 5 
 6 pytesseract.tesseract_cmd = 'D:\env\Tesseract-OCR\tesseract'
 7 # url
 8 base_url = 'https://hostxxx'
 9 code_url = base_url   '/common-platform/code'
10 do_login_url = base_url   '/common-platform/doLogin'
11 
12 
13 # 空白背景色 pytesseract 无法识别,更换了一下背景色
14 def change_background(img_fp):
15     try:
16         img = Image.open(img_fp)
17         x, y = img.size
18         new_img = Image.new('RGBA', img.size, (255, 255, 255))
19         new_img.paste(img, (0, 0, x, y), img)
20         return new_img
21     except:
22         print u'更换图片背景失败'
23 
24 
25 # 识别图片验证码
26 def ocr2str(img):
27     return str(image_to_string(img))
28 
29 
30 # 创建 session
31 session = requests.Session()
32 # 请求图片验证码接口
33 code_resp = session.request(method='GET', url=code_url, verify=False)
34 # 保存图片验证码
35 with open('code.png', 'wb') as f:
36     f.write(code_resp.content)
37 # 验证码
38 code = ocr2str(change_background('code.png'))
39 # 登录数据
40 do_login_data = {
41     'userName': 'user',
42     'password': 'pwd',
43     'verificationCode': code
44 }
45 # 登录接口
46 do_login_resp = session.request(method='POST', url=do_login_url, data=do_login_data, verify=False)
47 print do_login_resp.text  # 检验登录是否成功
 1 # coding: utf-8
 2 import requests
 3 from PIL import Image
 4 from pytesseract import image_to_string, pytesseract
 5 
 6 pytesseract.tesseract_cmd = 'D:\env\Tesseract-OCR\tesseract'
 7 # url
 8 base_url = 'https://hostxxx'
 9 code_url = base_url   '/common-platform/code'
10 do_login_url = base_url   '/common-platform/doLogin'
11 
12 
13 # 空白背景色 pytesseract 无法识别,更换了一下背景色
14 def change_background(img_fp):
15     try:
16         img = Image.open(img_fp)
17         x, y = img.size
18         new_img = Image.new('RGBA', img.size, (255, 255, 255))
19         new_img.paste(img, (0, 0, x, y), img)
20         return new_img
21     except:
22         print u'更换图片背景失败'
23 
24 
25 # 识别图片验证码
26 def ocr2str(img):
27     return str(image_to_string(img))
28 
29 
30 # 创建 session
31 session = requests.Session()
32 # 请求图片验证码接口
33 code_resp = session.request(method='GET', url=code_url, verify=False)
34 # 保存图片验证码
35 with open('code.png', 'wb') as f:
36     f.write(code_resp.content)
37 # 验证码
38 code = ocr2str(change_background('code.png'))
39 # 登录数据
40 do_login_data = {
41     'userName': 'user',
42     'password': 'pwd',
43     'verificationCode': code
44 }
45 # 登录接口
46 do_login_resp = session.request(method='POST', url=do_login_url, data=do_login_data, verify=False)
47 print do_login_resp.text  # 检验登录是否成功

继之下载pytesser,下载的地址是:

 

 

鉴于code.google.com网址不大概访问。可点击这里本站下载.rar)。

 

 

编辑:mg4377娱乐手机版 本文来源:python完毕验证码,完毕轻巧图片验证码登入

关键词: 接口测试 自动化测试 其他