最近《百万英雄》很火。笔者也一直在玩,不过高中的知识都还给老师了。10秒的答题时间让人根本来不及去百度搜索。于是我制作了这个脚本,对题目进行文字识别,自动打开网页进行搜索。首先来看一下测试结果:
实现原理:
实现原理非常简单。安卓手机连接电脑,通过adb调试实现对手机答题页面的截屏,然后利用百度云AI进行文字识别,在返回结果中找到问题的文字,通过python库打开浏览器进行浏览。
准备工作:
安卓手机连接电脑,开启手机的调试模式。
电脑上需要有adb调试工具和python3安装
通过pip3 install baidu-aip安装百度的文字识别库
在百度ai上注册,并申请一个文字识别的应用,获得下面第二步需要的三个密码。
代码实现:
第一步:引入需要的库
上面有两个函数,我们一会再说。
第二步:实现登陆百度aip。这部分根据百度api文档写代码即可。
这部分代码百度文档上有,目的是连上百度ai。
第三步:截取屏幕
这部分是adb调试的语法。我们通过os.system()调用
第四步:裁剪图片并发送图片到百度ai
这里用到了上面一开始的两个函数。在第三部获得问题图片后,我们对图片进行裁剪,裁剪出只有问题和选项的部分,这样可以大幅提高ai的反应速度。然后通过百度给出的函数get_file_content和client.basicGeneral获得数据。
第五步:获得问题上网搜索
这里面我为了应对,“下面的哪些不是。。。”这样的问题,给了两种搜索方式,一种是只在百度上搜索问题,另一种是连着答案一起去百度搜索。
最后通过webbrowser打开浏览器。
未解决的问题
现在这段代码在windows上执行是没有问题的。但在mac上最后一步打开浏览器中文会发生乱码的现象,我一直没有办法解决,是编码的问题呢还是大小端的问题呢,希望读者能指定一二。
另外,也可以使用一些其他的本地库来实现文字识别,比如大名鼎鼎的tesseract-ocr,但需要进行训练。同时我看到网上有人用beautiful soup进行文字分析,也是很好的方向。
另外,这个东西只是一个辅助工具,有些题很灵。但现在有些题很绕,10秒的时间又看题,又在百度上找答案,根本来不及,反而会失去通过思考得出正确答案的时间。
总之,靠答题致富不过是宣传口号,调整心态,获得答题的快乐才是根本。这段代码也主要是我娱乐自己的产物。
领取专属 10元无门槛券
私享最新 技术干货