目录标题

  • 1 环境准备
  • 2 获取屏幕位置
  • 3 指定区域屏幕截图
  • 4 文字识别
  • 5 按键识别并保存到剪贴板

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

1 环境准备

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

2 获取屏幕位置

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

import pyautoguiprint('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 ImageGrabdef 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)breakexcept:continue

4 文字识别

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

from aip import AipOcrdef 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 pyperclipwhile 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':breakelse:continueexcept KeyboardInterrupt:#防止出现按ctrl+c结束程序的情况print("\n")continue

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

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

  1. (已更新)运势运程小程序v1.2.0 功能模块+微信小程序+前端+后端+新增每日星座卡片

    运势运程算命小程序 v1.2.0 完整版+微信小程序+前端+后端 运势运程算命小程序开源源码最新更新日志: 新增测算栏目支付成功模版消息提醒,增加留存率.新增每日星座卡片.单向历,请求缓存解决请求慢问 ...

  2. 运势运程算命小程序v1.2.0 功能模块+微信小程序+前端+后端+新增每日星座卡片

    运势运程算命小程序开源源码最新更新日志: 新增测算栏目支付成功模版消息提醒,增加留存率.新增每日星座卡片.单向历,请求缓存解决请求慢问题.修复测算出生日期开始时间,从 1979 更改为 1918 运势 ...

  3. 舔狗日记-土味情话-每日一言三合一小程序源码下载带安装教程

    舔狗日记-土味情话-每日一言三合一小程序源码下载带安装教程 支持扩展更多小程序 1.去微信公众平台申请小程序并填好资料(https://mp.weixin.qq.com) 2.下载微信开发者工具 3. ...

  4. 微信公众账号后台怎么解除小程序_微信小程序怎么注销账号_微信小程序注销方法_快吧小程序...

    微信小程序一直存在一个问题:开发者不能注销自己的小程序.之前当开发者需要彻底清除小程序信息时,只能够通过暂停服务或关闭"允许被搜索"的方式曲线救国.现在,这个问题终于解决了. 在微 ...

  5. 垃圾分类宣传教育——垃圾分类知识竞答活动小程序

    <生活垃圾分类管理办法>(下称<办法>)日前公布,将于2021年10月1日起施行. <办法>的出台标志着我市生活垃圾分类工作进入法治化新阶段.<办法>的 ...

  6. c语言编程微信公众号图片直播,如何以图片的形式在微信公众号文章中添加小程序...

    如何以图片的形式在微信公众号文章中添加小程序 微信公众号中想要将自己的小程序也放进去,宣传宣传,该怎么添加?下面百分网小编带大家一起来看看详细操作教程,感兴趣的朋友一起学习吧!!!想了解更多相关信息请 ...

  7. python开发图形小程序_python小程序图画 python开发微信小程序

    你用python写过哪些好玩的微信小程序? 首先要明确一点,python是后台语言,不能直接用python来写微信小程序的. 微信小程序是用javascript和css来写的. python只是用来给 ...

  8. 脱离微信,在硬件设备运行小程序?小程序硬件框架大揭秘!

    受访者 | 微信小程序硬件框架团队 采访者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 在 2017 年的微信公开课 PRO 上,张小龙谈到微信小程序的设计初衷:"我认为所有的 ...

  9. 挑战微信、试探苹果?支付宝小程序可添加到 iOS 手机桌面

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! [CSDN编者按]从微信小程序到快应用,移动互联网正面临着一场重新洗牌.以往的应用分发模式已 ...

最新文章

  1. mysql in sql注入_在 SQL 注入攻击中检查数据库
  2. 【Java每日一题】20170113
  3. Map排序,获取map的第一值,根据value取key等操作(数据预处理)
  4. laxcus的新功能:支持表跨数据库操作
  5. NVIDIA TESLA M40
  6. mysql用户变量_MySQL用户变量的用法
  7. 从Model1,Medel2到显示层框架的出现
  8. WebStorm WiFi真机同步无法安装成功及appLoader无法连接
  9. 金士顿16G优盘变8M恢复教程
  10. vs2010格式化html,VS中的快捷键快速格式化代码,使好看,整齐
  11. CSR (英国蓝牙芯片制造商)
  12. Linux和Windows学习日记5
  13. Dacom G150双模耳机,为爱发声,呵护孩子听力健康成长
  14. Notion数字笔记使用教程
  15. 数据运营-计算留存率和转化率(漏斗分析Python)
  16. 芙拉机器人_【诉说实情】芙拉2020新品女士小号斜挎包心形印花怎么样?别花冤枉钱,内幕大揭秘 | 智能扫地机器人评测...
  17. 什么是JPA(Java persistence API)?
  18. 电脑开机显示“Windows\system\vgaoem.fon”丢失的解决方法
  19. Java学习第二周(2)--排序算法与二维数组
  20. CListCtrl容纳的最多行数

热门文章

  1. ORACLE 计算某个变量的同比环比
  2. lzb有博客了233
  3. CVE-2022-33891:Apache Spark 命令注入漏洞通告
  4. 云红外辐射反馈在热带气旋发展中的关键作用
  5. Linux 系统中 SciPy (Python 3) 编程环境
  6. python量化交易策略——唐奇安通道和海龟策略(1)
  7. 企鹅智酷“2015年互联网终极报告——解读九大行业红利”
  8. C语言控制台小程序:自制三角计算器
  9. 网络变压器生产及网络变压器的磁芯选择标准
  10. 虚拟机Ubuntu忘记密码解决办法