酷! 程式員用Python帶你玩轉沖頂大會,python大會

來源:互聯網
上載者:User

酷! 程式員用Python帶你玩轉沖頂大會,python大會

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 題目和候選答案,組成三個組合扔到百度或Google裡搜尋,然後哪個組合的結果出現次數最多就選擇哪個。試了幾個問題後發現並不是這樣,比如上面圖片的“駱駝的駝峰是儲存什麼的?”,可能多數人都會認為是水,因此出現的次數最多,其實是錯誤答案。

最後還有兩個痛點:

免費 OCR 介面調用次數有限,所以不能一直去截屏識別,只能等題目出現時運行程式。
官方也很套路,有的問題是沒法搜尋的。比如這種:

最後附上代碼:

# python3import wdaimport ioimport urllib.parseimport webbrowserimport requestsimport timeimport base64from PIL import Imagec = wda.Client()# 百度OCR APIapi_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)

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援幫客之家。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.