頭腦王者輔助工具開發(fā)的實(shí)戰(zhàn)教程
最近直播答題火熱,群里也經(jīng)常看到比拼微信小程序《頭腦王者》。我比較笨,憑純答題只到了黑金段位。鑒于本周剛剛點(diǎn)亮了收集抓包的技能,于是想試著通過這個(gè)來做一個(gè)輔助工具。
抓包
我使用的是fiddler
抓的,網(wǎng)上關(guān)于抓app包的教程很多,可自行查閱,這里不贅述。根據(jù)抓包發(fā)現(xiàn)出題目的接口:
數(shù)據(jù)格式是一個(gè) json 字符串,如下所示:
{"data":{"quiz":"我國的根本大法指的是?","options":["刑事訴訟法","刑法","婚姻法","憲法"],"num":3,"school":"理科","type":"地理","typeID":9,"contributor":"孫悅悅","partner":0,"endTime":1516447448,"curTime":1516447433,"myBuff":{}},"errcode":0}
解決了題目的獲取,接下來就是想辦法把題目傳遞到其他程序,利用FiddlerScript
就可以了:
點(diǎn)擊FiddlerScript
然后選擇OnbeforeResponse
進(jìn)入該函數(shù)內(nèi),寫下如下代碼:
這部分就是將題目發(fā)到自己寫的一個(gè)程序上:
if (oSession.fullUrl.Contains("question.hortor.net/question/bat/findQuiz")) { //把內(nèi)容通過ajax http發(fā)送其它地方 var _xhr = new ActiveXObject('Microsoft.XMLHTTP'); var url = 'https://localhost:8000/api/brain_king/'; //不需要返回值所以設(shè)置為空回調(diào) _xhr.onreadystatechange = function() {} _xhr.open('POST', url, true); _xhr.setRequestHeader("Content-Type", "application/json"); _xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); _xhr.send(oSession.GetResponseBodyAsString()); }
解答問題
得到問題后如何答題就見仁見智了,最簡單的一個(gè)方式就是把問題提交到百度上,進(jìn)行詞頻統(tǒng)計(jì),大多數(shù)情況下詞頻多的為正確答案,于是我及其簡單的做了處理:
class BrainKing(generics.GenericAPIView): def post(self, request): question_dict = request.data.get("data") question_text = question_dict["quiz"] choices = question_dict["options"] content = session.get('https://www.baidu.com/s?wd=' + question_text, timeout=2).text for choice in choices: print(choice + " : " + content.count(choice)) return Response("")
成果展示
用這個(gè)上分確實(shí)很快,不過缺點(diǎn)也是比較明顯的,帶一些干擾詞就不行了,但總體上王者還是比較輕松的:
我有個(gè)朋友真的靠純答題上的王者,令人敬佩。最后提醒一下,游戲而已,不要為了攀比傷了和氣。
HiShop小程序工具提供多類型商城/門店小程序制作,可視化編輯 1秒生成5步上線。通過拖拽、拼接模塊布局小程序商城頁面,所看即所得,只需要美工就能做出精美商城。
更多小程序資訊,盡在:m.descansotropical.com/xiaocx/
第二部分:如何開通一個(gè)小商店