【微信读书每日一答辅助小程序】使用python对每日一答问题进行识别,并将结果保存到剪贴板以便搜索。

  在腾讯收购阅文之后,微信读书的无限卡已经不能免费看书了,这时白嫖微信读书每日一答的书币成了不错的选择。严重偏科又手速垃圾的我在等级升高下逐渐力不从心,于是突然有了这个想法,写个能快速识别问题文字的小程序,因为现有的识别文字等程序(如QQ)会出现识别速度慢、手动框选识别区域的问题。

1 环境准备

系统:WIN10
python version:3.6
所需要的库:pyautogui,keyboard,PILLOW,baidu-aip

2 获取屏幕位置

  既然是对屏幕制定区域进行截图,必须要知道该区域在屏幕上的坐标,因此需要使用pyautogui大三方库,windows上不需要安装其他依赖模块。
分辨率为 1920 × 1080 的计算机屏幕上的坐标

import pyautogui

print('Press Ctrl-C to quit.')
try:
    while True:
        # Get and print the mouse coordinates.
        x, y = pyautogui.position()
        positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
        print(positionStr, end='')
    print('\b' * len(positionStr), end='', flush=True)
except KeyboardInterrupt:
	#按ctrl+c结束程序
    print('\nDone.')

3 指定区域屏幕截图

  需要使用PILLOW第三方库,安装方法自行百度。实现的操作是对制定区域截图,并保存到目标文件夹中,之后以二进制只读方式打开该图片,返回其结果。每次保存图片会自动覆盖之前的图片,具体代码如下:

from PIL import ImageGrab

def get_file_content():
    #左上坐标点(x1,y1),右上坐标点(x2,y2),box = (x1,y1,x2,y2)
    box = (1450,267,1850,365)
    #截图
    image = ImageGrab.grab(box)
    while True:
        try:
            #保存图片
            filepath = "C:/Users/MAIBENBEN/Desktop/1.jpg"
            image.save(filepath)
            break
        except:
            continue

4 文字识别

  在此需要用到百度AI开放平台文字识别技术,因此需要注册百度智能云账号/百度账号,注册过程十分简单,一分钟完成,具体步骤可以参考。
  为了使用该功能,需要安装baidu-aip第三方库,很小巧且好用的一个库,识别速度很快,2秒左右。具体代码如下:

from aip import AipOcr

def word_identify():
    #输入自己的应用的信息
    APP_ID = '***'
    API_KEY = '***'
    SECRET_KEY = '***'
    client= AipOcr(APP_ID, API_KEY, SECRET_KEY)
    #读取图片信息,返回二进制结果
    img = get_file_content()
    #返回识别结果
    res = client.basicGeneral(img)
    print(res)
    #返回识别结果中的文字信息
    return ''.join([word['words'] for word in res['words_result']])

5 按键识别并保存到剪贴板

  实现功能为,当程序运行后,按下某键就进行截图和文字识别操作,按下某键退出程序,按其他键无反应,需要用到keyboard第三方库。还需将识别结果保存到剪贴板中,需要使用第三方库pyperclip。程序运行后按b键进行截图识别,按q键结束程序,具体代码如下:

import keyboard
import pyperclip

while True:
    try:
        print('Press and release a shortcut(b): ')
    ​    ​#捕捉按键状态
        shortcut = keyboard.read_key()
        print('Shortcut selected:', shortcut)
        if shortcut == 'b':
            words = word_identify()
            print(words)
    ​    ​    ​#识别结果保存到剪贴板
            pyperclip.copy(words)
        elif shortcut == 'q':
            break
        else:
            continue
    except KeyboardInterrupt:
        #防止出现按ctrl+c结束程序的情况
        print("\n")
        continue

第一次用CSDN投稿,若代码有错误可在评论区交流。
最后,祝你白嫖开心!
PS:之后有时间可能会做如下更新:
  1.使用selenium模块自动打开浏览器进行搜索。
  2.对问题进行精细化处理,使其更便于搜索。
  3.自动捕获窗口坐标位置,在此基础上进行截图操作。
  4.添加题库,从题库对比寻找答案,没有则自行搜索。

  • 2
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

微信小程序系统教程[初级阶段]微信小程序0基础学起讲解微信小程序开发的基础知识 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”后在报名“微信小程序系统教程[阶段]” 阶段讲解的客服消息是针小程序后台程序用接近底层的技术没有使用三方技术这样降低同学们学习成本 微信支付这部分课程很有难度要求同学们认真听讲有不会的技术问题可以请教老师购买课程后请联系老师提供单号给你源程序 九宝电商系统是一套十分适和学习、项目的课程既可以系统的学习微信小程序相关知识还可以修改后上线微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段]微信小程序0基础学起讲解微信小程序开发的基础知识 购买课程的同学可赠送就九宝老师编写的《微信小程序开发宝典》 购课请咨询qq2326321088
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值