前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >直播答题?Python助你自动搜题之新手篇!

直播答题?Python助你自动搜题之新手篇!

作者头像
TTTEED
发布2020-07-09 11:19:07
1.2K0
发布2020-07-09 11:19:07
举报
文章被收录于专栏:用户6811391的专栏

题外话

刚开始在微信公众号写文章,操作生疏,导致上一篇格式、链接都很乱,在此重新编辑,并添加实测视频和反馈收到的改进。

现在貌似类似的程序、代码出现了很多,利用它们答题之余,希望大家可以多探究下它们的原理逻辑,为自己以后学习编程或开发设计积累些小经验。

至于答题,个人感觉还是组团靠谱,组个智囊团一起享受答题乐趣,同时利用下搜索小功能,学习各种知识点,比孤军奋战强大太多~

可以关注本公众号,回复“答题”或“自动搜题”获取原创Python搜题代码,此篇面向新手小白进行解析,助你成功运行自动搜提的Python程序。任何相关问题都可以留言,我的目的就是尽力帮你实现代码运行,享受Python的乐趣~

思路和步骤

本代码的思路比较简单:利用现有的手机和电脑“共享屏幕”(说白了就是在电脑屏幕上实时显示手机屏幕内容的)应用,直接电脑端对屏幕截图从而节省从手机端获取截图的时间;之后利用Python现有的功能库识别截图中文字,完成打开浏览器自动搜索的功能。不用adb获取手机截图、不抓取搜索结果显示的原因是我们要节省时间,只要最短时间内得到结果来答题。接下来说大致步骤:

首先是获取题目截图,例如:

之后是读取截图中文字内容,像这样:

最终打开浏览器自动搜索题目,上图:

预期是3-5秒内要完成全过程,经过1月11日中午1点实测,网络良好时,搜完结果回剩余大约5秒的答题时间,还是很高效的~!

下载功能包

我的设备和Python版本是:win10系统电脑,安卓手机,Python3.6

  1. 我是用的安卓手机和Windows系统电脑,为了快速获取题目截图,我的做法是把手机屏幕同步到电脑屏幕上,然后利用电脑截取屏幕上题目位置的内容。所以首先要能够实现手机屏幕内容能够共享到电脑屏幕上,我是用的360手机助手,其中的360演示功能,其余型号的手机电脑请自行搜索实现吧~
  2. 实现了同步屏幕,接下来要做电脑端的屏幕截图,这里要用到可以快速实现的Windows API,需要下载pywin32模块,pip 的安装命令是pip install pypiwin32,相关参考链接请点击原文查找下。
  3. 拿到题目截图,下面要实现对图片中文字的读取,要安装PIL和pytesseract还有最新版的识别中文的引擎包tesseract-ocr,前两个可以通过pip install Pillow和pip install pytesseract安装,之后的ocr可以官网下载最新版4.0版,也可以阅读原文链接中寻找下我提供的网盘下载,安装ocr时请参考链接勾选中文和数学选项。
  4. 获取了题目内容,要通过webbrowser模块实现自动打开浏览器搜索,该模块自带不用下载。

校准截图位置

运行代码,根据生成的截图内容判断截图所在屏幕上的位置,调整代码中的w,h来改变截图大小,(20,140)处坐标改变截图初始位置,对应屏幕中手机屏幕显示位置,使截图恰好落在手机直播答题时出现题目的位置。

此外,直播答题时,可以使用Python自带的IDLE来打开代码,按F5快捷键直接运行节省时间,同时提前打开好浏览器分配好位置,避免答题时浏览器跳出阻挡截图位置。

代码解析

点击阅读原文,相关知乎文章中包含代码的逐句解析,由于公众号文章还没研究好怎么展示代码,就先不在这展示了。不看解析也没关系,不影响执行。

实测视频

上文中提到的第六题:

视频内容

代码功能介绍:

视频内容

成功的第一题:

视频内容

希望大家看到此处的时候已经可以成功运行代码了~

关注公众号回复“答题”或“自动搜题”便可获取代码下载地址~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TTTEED 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文字识别
文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档