强智科技教务系统验证码识别

强智科技验证码识别

前言

由于近期在写一个教务系统的爬虫程序,但是网站的验证码让人很头疼,所以笔者临时找了一些资料学习了一下,本人python用的很少,而且在机器学习这块也是新手,从来没有接触过,所以写的不好还请指点出来。

环境
	python3.6
		PIL
		sklearn
准备

使用一个简单的脚本下载1000张验证码,然后做好标记

	import requests

	url = "http://****/verifycode.servlet"
	
	for i in range(1000):
		filename = "./code/"+str(i)+".png"
		response = requests.get(url)
		with open(filename , "wb") as f:
			f.write(response.content)

在这里插入图片描述

图像处理

实例图片
在这里插入图片描述
1.二值化,这里我们进行手动利用一个阈值进行二值化,处理完成以后的图片如下
在这里插入图片描述
2.降噪,思路是,当一个点他为黑色时,周围8(这个数字改小一点还可以完成线去除干扰线的功能,我这里就是使用这种方式将干扰点和干扰线去除的)个点都是白色则认为这是一个噪点
在这里插入图片描述
我们发现还是有一个点没有去除,没有关系,下面我们做字符分割的时候还是会进行一次降噪

3.字符分割,思路是找出每个数字的边缘坐标,如果上下边缘相差太小的话则认为这里为噪点,直接去除
在这里插入图片描述

图片转换为数据

上面已经分割好了,我们现在需要将图片转换成数据,方便我们下面传入机器学习,我用的方式是遍历分割好的方形区域,黑色为1,白色为0,拼接成一个类似于“0011010100000101111111111”的字符串,然后将字符串转换成int型数值

最后生成的数据是下面这种样子
图片数据:[“61256415613215646512” , “61256415613215646512” , “61256415613215646512” , “61256415613215646512”]
结果数据:[‘1’ , ‘j’ , ‘k’ , ‘d’]

训练模型

我是用的是knn分类算法

代码

1.图像处理类

	from PIL import Image , ImageDraw
import cv2

'''
	图片处理类
'''
class ImageHandler():
	threshold = 130 #二值化处理阈值
	im = None 		#保存当前类所处理的图片
	spliter = []
	data = []
	labels = []
	
	def __init__(self , filename):
		self.filename = filename 
		self.data = []
		self.labels = []
		self.spliter = []
		self.im = None
	
	'''
		
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
强智教务系统抢课脚本实现有多种方法,以下是其中两种常见的方法: 方法一: 可以使用Python编写脚本来模拟登录教务系统,并通过发送POST请求实现抢课功能。具体步骤如下: 1. 首先,你需要安装Python的相关依赖库,如requests、BeautifulSoup等。 2. 接下来,你需要分析教务系统的登录接口和抢课接口,获取相关参数。 3. 编写Python脚本,通过模拟登录获取登录凭证(如cookie或token)。 4. 构造合适的POST请求,并携带登录凭证和抢课参数,发送请求到抢课接口。 5. 解析响应内容,判断是否抢课成功。 方法二: 另一种方法是使用基于爬虫的抢课代码。这种方法需要使用Python爬虫框架,如Scrapy或BeautifulSoup,来模拟用户操作并自动填写课程选择表单。具体步骤如下: 1. 首先,你需要安装Python的相关依赖库,如requests、BeautifulSoup等。 2. 接下来,你需要通过爬虫技术分析教务系统的网页结构,获取课程选择页面的URL和表单字段。 3. 编写Python爬虫脚本,通过发送GET请求获取课程选择页面的HTML内容。 4. 解析HTML内容,提取表单字段,并填充需要选择的课程信息。 5. 构造合适的POST请求,携带填好的表单数据,发送请求到抢课接口。 6. 解析响应内容,判断是否抢课成功。 以上是两种常见的强智教务系统抢课脚本实现方法。具体的实现细节和代码可以参考引用和引用中的博客文章。如果需要进一步了解抢课脚本的实现细节或获取相关代码,你可以参考引用和引用中提供的链接。注意,引用中提供的基于爬虫的抢课代码不便展示,请通过提供的链接下载查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值