专栏名称: python
隔天更新python文章,我希望用我的努力换来劳动的成果帮助更多的人掌握一门技术,因此我要更加努力。
目录
相关文章推荐
Python爱好者社区  ·  python接私活,yyds ·  22 小时前  
Python爱好者社区  ·  DeepSeek 最新中国大学排名 ·  22 小时前  
Python开发者  ·  “李飞飞团队50 美元炼出 ... ·  3 天前  
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  4 天前  
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  4 天前  
51好读  ›  专栏  ›  python

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

python  · 公众号  · Python  · 2018-01-15 15:34

主要观点总结

本文主要介绍了获取手机直播答题界面截图、读取截图中的题目文字内容、打开浏览器执行对题目搜索的步骤及注意事项。文章还涉及了下载相关功能包、校准工作等部分。

关键观点总结

关键观点1: 获取手机直播答题界面截图

只关注题目,忽略选项,通过搜索题目内容获取辅助线索;截图只定位在显示题目的位置,提高图片中文字读取的速度和精度。

关键观点2: 读取截图中的题目文字内容

在shell处展示读取到的题目内容,同时显示代码耗时。

关键观点3: 实现方法的选择

考虑到时间因素,选取耗时尽量少的方法来实现各部分功能,如使用Windows10系统电脑、Python3.6和安卓手机数据线连接。

关键观点4: 相关技术和工具的使用

使用360手机助手的'演示'功能连接安卓和windows;通过电脑截屏截取屏幕上手机直播内容;使用PIL和pytesseract进行文字识别;使用webbrowser模块打开浏览器。

关键观点5: 校准工作

调整代码中w,h值改变截图大小,调整初始位置坐标,使截图恰好落在手机屏上直播时显示题目的位置。


正文

1. 获取手机直播答题界面截图

注意:我们这里只关注题目,不管选项,通过搜索题目内容获取辅助线索,所以截图我们只定位在显示题目的位置就足够了,这样图片中读取文字的速度快精度也高一些,例如中午1点直播答题测试时截图第六题:

2. 读取截图中的题目文字内容

这里我们在shell处将读取到的题目内容输出展示,同时也显示代码耗时:

3. 打开浏览器执行对题目搜索

单论每一步,实现方法有很多,但考虑到时间,我们只选取耗时尽量少的方法来实现各部分功能。经过1月11日中午1点百万英雄直播答题时的测试,网络良好时,搜完结果剩余答题时间仍有5秒,完全达到预期效果

B 下载相关功能包:由于我也算是刚入门的新手,基本各种功能模块都是按着搜来的网上教程来的,所以大家只要能保证各个模块都配好,最终程序跑通还是不难的。

执行代码时,我用的是Windows10系统电脑,Python3.6,安卓手机数据线连电脑。

1. 无论什么手机、电脑系统,要做的是实现把手机屏幕内容实时显示在电脑屏幕上,我是用的360手机助手的'演示'功能完成了对安卓和windows的连接,其余型号手机电脑可以自己搜一下来解决。

2. 接下来我们通过电脑截屏来实现截取屏幕上手机直播内容,由于Windows API获取截图的耗时极少,我们选择了它。由于Python没有自带访问windows系统API的库,需要下载pywin32库来实现,pip 安装的命令是: pip install pypiwin32(注意安装时是pypiwin32,不是pywin32)。这里关于windows通过python截屏函数

3. 拿到题目的截图后,要完成对题目中文字的读取,就需要安装PIL和pytesseract,同时还需要简体中文识别的引擎包tesseract-ocr,相关安装检测参考链接: Python人工智能之图片识别,Python3一行代码实现图片文字识别 注意:安装引擎包时最好按照链接中保存到C盘相似的路径,我和朋友安到E盘都有报错,也没搞清具体原因,把文件剪切到C盘就解决了。另外,请官方下载最新版或者通过我这网盘分享的4.0.0版本的,链接中的版本有点低,准确率也较差

4. 打开浏览器的时webbrowser模块,自带不用下载。

C 接下来是校准工作,调整代码中w,h值来改变截图大小,(20,140)处的两个值改变截图初始位置坐标,对应着你个人手机屏幕在电脑屏幕中的显示位置,调整以上的值使截图恰好落在手机屏上直播时显示题目的位置。







请到「今天看啥」查看全文