自动报加班系统(Automatic Baojiaban Xitong,ABX)

加班系统一直是qs班的特色,但是每次都得输验证码不免有些麻烦,有时候还会发生忘报加班的情况。。。在一个月前我就嚷嚷着要把自动报加班程序写出来,今天花了几乎一天的时间(不知道之后节约的时间有没有这么多^_^),把它写出来了。

关于验证码的处理,本来想在本地实现的,利用PIL和tesseract库,但咱们这个验证码好像有点强(分辨率太低了。。。),好几个程序都没跑出来,那就用API吧,一开始用的showapi,一个不知名的网站,准确率倒是挺高,但免费用20次后就得交钱了,好像是74¥/1000次来着吧(这尼玛还不如手动报呢。。),于是就选择了百度的API,它没有专门做验证码识别的,便用的它的文字识别模块,效果也还行,平均3-4次就可以准确识别了。

至于怎样实现定时运行程序,就不得不提到一个黑科技--计划任务了,可以让计算机自动运行某一个程序或脚本,触发时间、出发条件、重复次数都可以设置(全方位满足你的要求),win+R 输入taskschd.msc 就可以把它召出来。

代码如下,需要的可以拿去,至于百度API的key就用我这个吧,反正每天500次用也用不完大笑

(py3,好久没写py了,dalao勿喷,基本不需要安装其他库,把data中的3个值改成你的就可以了,pos为助学室和学习室二选一)

url 填网址

#! -*- coding:utf-8 -*-

import requests
import base64
import json
import os

url = 'XXXX'
api_url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic'
headers = {
    'Cookie': 'PHPSESSID=0ln5qt5q76jn3tnsjpvtdflnm7',
}
data = {
    'name': 'XXX',
    'pwd': 'XXX',
    'pos': 'XXX',
}
api_headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
}
api_body = {
    'access_token':'24.ffd9855886b54a0011db066779c5b45d.2592000.1533459868.282335-11500055',
    'language_type': 'ENG'
}
print(u'这是自动报加班的程序')
while True:
	try:
		#获得验证码
		image = requests.get(url+'image.php',headers=headers).content
		api_body['image']=base64.b64encode(image)
		#调用baidu-api
		res = requests.post(api_url,headers=api_headers,data=api_body).content
		res=json.loads(res)
		if(len(res['words_result'])==0):
			continue
		data['code']=res['words_result'][0]['words']
		print(data['code'])
		#发起加班请求
		response = requests.post(url+'post.php',headers=headers,data=data)
		res=response.text[84:100].split('\'')[0]
		print(res)
		# 不断重复直到报上
		if res==u'你已经报过加班':
			print(u'报加班成功!')
			break
	except:
		print(u'报加班失败!')
		break
os.system("pause")


把它放到任何一个位置,再列入计划任务项,就可以每天准时运行了(当然需要联网的,还需要开机状态),我定的是每天9:30报,那么问题来了,忘了取消加班怎么办。^_^!


=||======>

以梦为马,以行为剑,怀着最炽热的心,披荆斩棘,勇往直前!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值