这篇“小程序中头脑王者辅助工具如何开发”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“小程序中头脑王者辅助工具如何开发”文章吧。
抓包
我使用的是fiddler
抓的,网上关于抓app包的教程很多,可自行查阅,这里不赘述。根据抓包发现出题目的接口:
数据格式是一个 json 字符串,如下所示:
{"data":{"quiz":"我国的根本大法指的是?","options":["刑事诉讼法","刑法","婚姻法","宪法"],"num":3,"school":"理科","type":"地理","typeID":9,"contributor":"孙悦悦","partner":0,"endTime":1516447448,"curTime":1516447433,"myBuff":{}},"errcode":0}
解决了题目的获取,接下来就是想办法把题目传递到其他程序,利用FiddlerScript
就可以了:
点击FiddlerScript
然后选择OnbeforeResponse
进入该函数内,写下如下代码:
这部分就是将题目发到自己写的一个程序上:
if (oSession.fullUrl.Contains("question.hortor.net/question/bat/findQuiz")){ //把内容通过ajax http发送其它地方 var _xhr = new ActiveXObject('Microsoft.XMLHTTP'); var url = 'https://localhost:8000/api/brain_king/'; //不需要返回值所以设置为空回调 _xhr.onreadystatechange = function() {} _xhr.open('POST', url, true); _xhr.setRequestHeader("Content-Type", "application/json"); _xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); _xhr.send(oSession.GetResponseBodyAsString());}
解答问题
得到问题后如何答题就见仁见智了,最简单的一个方式就是把问题提交到百度上,进行词频统计,大多数情况下词频多的为正确答案,于是我及其简单的做了处理:
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("")
以上就是关于“小程序中头脑王者辅助工具如何开发”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。