
这两天冲顶大会之类的直播答题 APP 突然火了起来,不得不佩服互联网公司的想象力,那么程序员怎么用不同的方式玩转答题游戏呢。之前微信的跳一跳小游戏刷报朋友圈,已经有很多朋友写出了自动化的脚本辅助,一看到答题游戏就马上想到可以用类似的方式来写一个简单的脚本。我发现已经有朋友做了个调用百度 api 的,自己就再写个直接用识别库的吧,代码思路简单,可以用在各类答题游戏中。使用文字识别加搜索,只能辅助增加准确率,保证不了全对。
目前版本增加了截图传输效率,修改了识别参数,对图像进行灰度转化,去干扰增加了识别准确率。结果判断使用了三种方式,对不同问题可以参考不同结果。
具体代码和环境及使用请戳: https://github.com/Skyexu/TopSup
adb shell screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png . 
文字识别两个方法:
直接打开浏览器搜索问题 
题目+每个选项都通过浏览器进行搜索,从网页代码中提取搜索结果计数
只用题目搜索结果页面代码中包含选项的词频计数法
以下为两个示例结果,可以看出下面两道题,两个方法有不同的结果,可以更具问题类型进行不同的决策。


参考了 I Hacked HQ Trivia But Here ’ s How They Can Stop Me
写完简单版本想一想,怕是还没有 Hi ,Siri来的方便,不过好在识别准确,查询快,后来又加了几个方法辅助决策。不玩了,写 paper 去了
1 cnwtex Jan 10, 2018 10 秒够用? |
2 binux Jan 10, 2018 知识图谱技术突飞猛进 |
3 ysanne Jan 10, 2018 搞了个 Java 版的,大概 4s 左右可以跑完。不过有的问题比较难弄,比如生僻字读音之类的。 |
4 qfdk PRO 这是高科技啊 不过 技术研究研究就好了 免得丧失公平性 |
5 simple2025 Jan 10, 2018 感觉自己好菜.. |
6 sutking Jan 10, 2018 via iPhone 感觉“以下选项那个符合 /是……”这类问题就坑了 |
7 marlboros Jan 10, 2018 科技使人进步,有时候科技也会使人退步!!! 那些题,比最后获得的钱更具有价值!!! 出了这类辅助,可悲可悲!!! |
8 sm1314 Jan 10, 2018 to 楼上,能用搜索引擎简单搜到的不算什么有价值的知识吧 |
10 LanAiFaZuo Jan 10, 2018 @ysanne 大佬 可以给我看看你的 java 版吗。最近在学习 java~~ |
11 Solix Jan 10, 2018 via iPhone 目测要上新闻了 |
12 yuanfnadi Jan 10, 2018 via iPhone @LanAiFaZuo java 代码不超过 20 行。自己研究一下 很简单的 |
13 beimenjun PRO 我说这类网游你们有必要用外挂做外挂吗? 如果说是挑战技术还能理解,这个稍微核心的部分都不别人做的,这种外挂做得真的有意思吗? |
14 LanAiFaZuo Jan 10, 2018 @yuanfnadi 新手,只是想研究下~并不会。。 |
15 ylsc633 Jan 10, 2018 这个冲顶大会... 感觉里面应该有很多机器人! 然后实际发放的 有几十万? 肯定木有 |
16 vipper Jan 10, 2018 感谢,小米 6 测试成功。 有遇到些坑:刚开始没有找到 chi_sim.traineddata 文件,最后重新安装选择了中文,就可以了 |
22 SkyeX OP @marlboros 不是很理解你的想法。这个原理也就是百度一下题目,我不会做百度一下没问题吧,也就是玩玩。说到题目价值,即使是答题真人秀很多也是背的题库吧。这些 APP 出现也就是为了刷流量,做题增长知识提升效果也没多大吧。。。。 |
23 ljbljb007 Jan 10, 2018 pip install PIL 这个安装不上啊 提示 Could not find a version that satisfies the requirement PIL (from versions: ) No matching distribution found for PIL 怎么搞? |
24 ysanne Jan 10, 2018 @LanAiFaZuo 公司电脑写的,并不能挂到 github 上。 |
25 ysanne Jan 10, 2018 楼主你的代码耗时怎么样?我这边 adb 截图 1s,ocr1s,google 大概 2s。时间上还是有点紧。 |
28 ljbljb007 Jan 10, 2018 好用了 谢谢楼主 不过方法 2 好用 方法 3 不好用 可以自己把方法 3 删掉吗? |
30 huijian222 Jan 10, 2018 @yuanfnadi #26 可是。。真的能全对吗。。 |
35 jason19659 Jan 10, 2018 @jamev5 #33 methods.py 里面改一下 from urlli.request import quote 然后 'https://baidu.com/s?wd=' + quote(question) |
36 sangmong Jan 10, 2018 马克思 |
37 moxiaonai Jan 10, 2018 有点慢 |
39 NicholasYX Jan 10, 2018 请问如何找坐标?我想用它来搜头脑王者的题试一下 |
40 qwjhb Jan 10, 2018 @NicholasYX 截图用画图都可以把 |
41 pheyer Jan 10, 2018 看到 ocr 我很想笑 |
42 imyip Jan 10, 2018 再加个识别然后模拟点击? adb shell input tap x y |
43 qsnow6 Jan 10, 2018 via iPhone 直接抓包就好了 |
45 MonoLogueChi Jan 10, 2018 via Android @marlboros 科技发明都是人类为了偷懒而创造的,没有偷懒的欲望,就没有发明创造的动力。所以说偷懒使人类进步 |
46 18912017465 Jan 10, 2018 用截图+ocr 的方式,时间上肯定来不及,效率太低了。我的想法是后台抓包得到问题,然后进行百度分析,同事记录进数据库,随着数据库的充实,得到问题后可以现在数据库里比对,没有再百度 |
47 yuanfnadi Jan 10, 2018 via iPhone @18912017465 你只是就知道了,题目是和视频流一起来的。 ocr 可以同时解决任何 app 任何平台,而且不会被破解。 |
49 XiaolinLeo Jan 11, 2018 via iPhone |
50 SorryChen Jan 11, 2018 via iPhone 分选项搜的那里很耗时,建议用多线程,我用多线程之后,提速效果显著 |
52 Linxing Jan 11, 2018 所以楼主瓜分了那笔钱了吗 |
53 alinwu05 Jan 11, 2018 via Android macOS 打开浏览器搜索,关键词乱码怎么解决? |
56 siriussilen Jan 11, 2018 这个我也写了一个 python 脚本,我用的是阿里的 ocr 识别技术,不过识别技术不够高,准确率比较差 |
57 ljbljb007 Jan 11, 2018 新版本有问题 昨天的版本好用 |
58 ljbljb007 Jan 11, 2018 Traceback (most recent call last): File "GetQuestionTessAndroid.py", line 33, in <module> m2 = Thread(methods.run_algorithm(1, question, choices)) File "E:\downloads\TopSup-master\common\methods.py", line 76, in run_algorithm open_webbrowser_count(question, choices) File "E:\downloads\TopSup-master\common\methods.py", line 30, in open_webbrowser_count output(choices, counts) File "E:\downloads\TopSup-master\common\methods.py", line 48, in output counts = list(map(int, counts)) ValueError: invalid literal for int() with base 10: 'html><html><body>\r\n<script type="text/Javascript">\r\n var u = document.URL;\r\n var ua = navigator.userAgent.toLowerCase();\r\n var u = "https://www.baidu.com/s?"+qs(\'wd|word\')+\'&tn=02 提示这个 怎么整? |
59 yao978318542 Jan 11, 2018 e ...我写了个 php 版本的 命中率 80 左右 有的还是得自己判断啊。。。。。 |
60 Bresh Jan 12, 2018 via Android 这东西感觉还是人多力量大 毕竟三个臭皮匠顶个诸葛亮 去一些 yy 或者群里 一起玩 |
61 q358566385 Jan 17, 2018 import urllib.parse ImportError: No module named parse 这个怎么破? Pyhton2 和 3 都安装了 |
62 SkyeX OP @q358566385 使用 python3 运行 |