python爬虫验证码获取与输出的简单介绍

Y31


利用pytesseract中的image_to_string方法,与pillow模块中的Image搭配使用:

from PIL import Image
from pytesseract import image_to_string
import urllib3,os

# 创建网络请求
http = urllib3.PoolManager()
header = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36','Content-type':'text/json'}

res = http.request('get','http://www.ztbu.edu.cn/captcha/1',headers=header)
# 将下载的验证码,存储到指定路径
f = open('yzm/ys.png','wb+')
f.write(res.data)
f.close()

# 打开文件中的验证码
img = Image.open('yzm/ys.png')
# 图像灰度处理
# 获取图像所有的像素点(pix是一个二维列表)
pix = img.load()
# 获取图片的宽度和高度
w,h = img.size
for i in range(w):
    for j in range(h):
        # 把每一个像素点求RGB平均值。pix[像素点1,像素点2,...],像素点1(R,G,B)
        val = (pix[i,j][0]+pix[i,j][1]+pix[i,j][2])//3
        pix[i,j] = (val,val,val,255)
img.save('yzm/yz1.png','png')
# 将经过灰度处理之后的图片进行二值化处理
img = Image.open('yzm/yz1.png')
pix = img.load()
for i in range(w):
    for j in range(h):
        if pix[i,j][0] <= 100:
            pix[i,j] = (0,0,0)
        else:
            pix[i,j] = (255,255,255)
img.save('yzm/yz2.png','png')
# 图片转变为黑白图片
img.convert('L')
# 开始识别图片中的验证码
# -psm 7代表将整个验证码视为一行文本
txt = image_to_string(img,config='-psm 7')
print(txt)

直接运行,即可输出验证码修饰过的样式,如下图
存储列表:
在这里插入图片描述
原始图片:
在这里插入图片描述
灰度处理过后:
在这里插入图片描述
黑白处理过后:
在这里插入图片描述
print(txt) 的输出结果:
在这里插入图片描述

之后的具体验证码操作,根据所需进行。

个人小结,定有不足,欢迎指点。
谢谢~

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值