python脚本实现《百万英雄》文字识别 自动搜索

最近《百万英雄》很火。笔者也一直在玩,不过高中的知识都还给老师了。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秒的时间又看题,又在百度上找答案,根本来不及,反而会失去通过思考得出正确答案的时间。

总之,靠答题致富不过是宣传口号,调整心态,获得答题的快乐才是根本。这段代码也主要是我娱乐自己的产物。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119A0JIE200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券