酷!程序员用Python带你玩转冲顶大会

  

2018年1月3日,王思聪被迫动用自己的微博,为一个诞生不到10天的应用打了广告,“每天我都发奖,金今晚9点就发10万”。对他而言,这天的微博并非生日宴会,而是战场。王思聪的一则微博开启了“全民竞答“类应用的爆红之路。

  

酷!程序员用Python带你玩转冲顶大会

  

一时间,直播巨头们都跟上“王校长”的节奏,“冲顶大会”之外,映客旗下的“芝士超人”,今日头条旗下的“百万英雄”和花椒直播旗下的“百万作战”纷纷亮相,每天狂撒百万现金。

  

酷!程序员用Python带你玩转冲顶大会
  

  

"冲顶大会”、“芝士超人”、“百万英雄”等知识竞答游戏火了,奖金数额也从最初的人民币5万,10万涨到100了万,101多万。

  

为了能够全部答对12道题,平分数额如此庞大的奖金池,参赛者开始想方设法提高自己答题的正确率。

  

正如节目主持人介绍的一样,许多答题者开始寻找身边的朋友共同答的题,以求覆盖到更多类型的知识点,提高通关的几率。

  

各种各样的微信,QQ答题群诞生,每个人都在群聊里分享自己认为正确的答案。

  

酷!程序员用Python带你玩转冲顶大会

  

<>强让你猜不到的是,答题游戏居然也有外挂!
  

  

为了能够全部答对12道题,平分数额如此庞大的奖金池,参赛者开始想方设法提高自己答题的正确率。

  

已经有程序员设计了“辅助程序”,用于快速检索答案。

  

酷!程序员用Python带你玩转冲顶大会

  

这个用Python程序可以修剪并识别图片中的文字内容(问题和选项),然后通过百度进行搜索关键字出现的次数,最后将统计的信息展示出来。这样一来,答题者就可以根据统计数据来选择相应的答案,极大提高了答题的正确率。

  

<强>那么程序员到底应该如何玩呢?

  

首先用WDA来获取屏幕截图.WDA本是Facebook开发的一套iOS测试框架,前几天看见大家都用来做微信“跳一跳”的外挂,便特意去了解了一下,发现也能用在冲顶大会上。

  

之后作物出题目所在的位置(可能需要适配手机屏幕),然后调用开放的OCR接口读取出文字文本,最后调用搜索引擎,就可以达到之前gif图的效果。这套环境是iOS + Mac,如果是安卓应该有更方便的方法。

  

其实最初的想法是希望搜索+选择答案全部自动化完成的,思路是OCR题目和候选答案,组成三个组合扔到百度或谷歌里搜索,然后哪个组合的结果出现次数最多就选择哪个。试了几个问题后发现并不是这样,比如上面图片的“骆驼的驼峰是存储什么的?”,可能多数人都会认为是水,因此出现的次数最多,其实是错误答案。

  

<强>最后还有两个痛点:
  

  

免费OCR接口调用次数有限,所以不能一直去截屏识别,只能等题目出现时运行程序。
  官方也很套路,有的问题是没法搜索的。比如这种:

  

酷!程序员用Python带你玩转冲顶大会

  

最后附上代码:
  

        # python3   进口wda   进口io   进口urllib.parse   导入web浏览器   进口的要求   导入的时间   进口base64   从公益诉讼导入图像      c=wda.Client ()   #百度OCR API   api_key="   api_secret="   令牌="         而真正的:   time . sleep (0.5)   c.screenshot (1. png)   我=Image.open (“。/1. png”)=我。作物((75,315,1167,789))# iPhone 7 p   imgByteArr=io.BytesIO ()   地区。保存(imgByteArr格式=PNG)   image_data=https://www.yisu.com/zixun/imgByteArr.getvalue ()   base64_data=base64.b64encode (image_data)   r=requests.post (' https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic ',   params={access_token:令牌},data=https://www.yisu.com/zixun/{“图像”:base64_data})   结果="   因为我在r.json () (“words_result”):   结果+=我(“单词”)   结果=urllib.parse.quote(结果)   webbrowser.open (' https://baidu.com/s& # 63; wd=' +结果)   打破      

酷!程序员用Python带你玩转冲顶大会