2018年1月3日,王思聰被迫動用自己的微博,為一個誕生不到10天的App打了廣告,“每天我都發獎金,今晚9點就發10萬”。對他而言,這天的微博并非生日宴會,而是戰場。王思聰的一則微博開啟了“全民競答”類APP的爆紅之路。
一時間,直播巨頭們都跟上“王校長”的節奏,“沖頂大會”之外,映客旗下的“芝士超人”、今日頭條旗下的“百萬英雄”和花椒直播旗下的“百萬作戰”紛紛亮相,每天狂撒百萬現金。
“沖頂大會”、“芝士超人”、“百萬英雄”等知識競答游戲火了,獎金數額也從最初的人民幣5萬、10萬漲到了100萬、101萬。
為了能夠全部答對12道題,平分數額如此龐大的獎金池,參賽者開始想方設法提高自己答題的正確率。
正如節目主持人介紹的一樣,許多答題者開始尋找身邊的朋友共同答題,以求覆蓋到更多類型的知識點,提高通關的幾率。
各種各樣的微信、QQ答題群誕生,每個人都在群聊里分享自己認為正確的答案。
讓你猜不到的是,答題游戲居然也有外掛!
為了能夠全部答對12道題,平分數額如此龐大的獎金池,參賽者開始想方設法提高自己答題的正確率。
已經有程序員設計了“輔助程序”,用于快速檢索答案。
這個用Python程序可以修剪并識別圖片中的文字內容(問題和選項),然后通過百度進行搜索關鍵字出現的次數,最后將統計的信息展示出來。這樣一來,答題者就可以根據統計數據來選擇相應的答案,極大提高了答題的正確率。
那么程序員到底應該如何玩呢?
首先用 WDA 來獲取屏幕截圖。WDA 本是 Facebook 開發的一套 iOS 測試框架,前幾天看見大家都用來做微信“跳一跳”的外掛,便特意去了解了一下,發現也能用在沖頂大會上。
之后 crop 出題目所在的位置(可能需要適配手機屏幕),然后調用開放的 OCR 接口讀取出文字文本,最后調用搜索引擎,就可以達到之前 gif 圖的效果。這套環境是 iOS + Mac,如果是安卓應該有更方便的方法。
其實最初的想法是希望搜索+選擇答案全部自動化完成的,思路是 OCR 題目和候選答案,組成三個組合扔到百度或谷歌里搜索,然后哪個組合的結果出現次數最多就選擇哪個。試了幾個問題后發現并不是這樣,比如上面圖片的“駱駝的駝峰是存儲什么的?”,可能多數人都會認為是水,因此出現的次數最多,其實是錯誤答案。
最后還有兩個痛點:
免費 OCR 接口調用次數有限,所以不能一直去截屏識別,只能等題目出現時運行程序。
官方也很套路,有的問題是沒法搜索的。比如這種:
最后附上代碼:
# python3 import wda import io import urllib.parse import webbrowser import requests import time import base64 from PIL import Image c = wda.Client() # 百度OCR API api_key = '' api_secret = '' token = '' while True: time.sleep(0.5) c.screenshot('1.png') im = Image.open("./1.png") region = im.crop((75, 315, 1167, 789)) # iPhone 7P imgByteArr = io.BytesIO() region.save(imgByteArr, format='PNG') image_data = 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': token}, data={'image': base64_data}) result = '' for i in r.json()['words_result']: result += i['words'] result = urllib.parse.quote(result) webbrowser.open('https://baidu.com/s?wd='+result) break
(代碼來源:https://livc.io/blog/204)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
