前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序头脑王者辅助神器

微信小程序头脑王者辅助神器

作者头像
Python中文社区
发布2018-03-26 16:19:08
1.5K0
发布2018-03-26 16:19:08
举报
文章被收录于专栏:Python中文社区Python中文社区

起步

最近直播答题火热,群里也经常看到比拼微信小程序《头脑王者》。我比较笨,凭纯答题只到了黑金段位。鉴于本周刚刚点亮了收集抓包的技能,于是想试着通过这个来做一个辅助工具。

抓包

我使用的是 fiddler 抓的,网上关于抓app包的教程很多,可自行查阅,这里不赘述。根据抓包发现出题目的接口:

数据格式是一个 json 字符串,如下所示:

代码语言:javascript
复制
{"data":{"quiz":"我国的根本大法指的是?","options":["刑事诉讼法","刑法","婚姻法","宪法"],"num":3,"school":"理科","type":"地理","typeID":9,"contributor":"孙悦悦","partner":0,"endTime":1516447448,"curTime":1516447433,"myBuff":{}},"errcode":0}

解决了题目的获取,接下来就是想办法把题目传递到其他程序,利用 FiddlerScript 就可以了:

点击 FiddlerScript 然后选择 OnbeforeResponse 进入该函数内,写下如下代码:

这部分就是将题目发到自己写的一个程序上:

代码语言:javascript
复制
if (oSession.fullUrl.Contains("question.hortor.net/question/bat/findQuiz"))
{
    //把内容通过ajax http发送其它地方
    var _xhr = new ActiveXObject('Microsoft.XMLHTTP');
    var url = 'http://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());
}

解答问题

得到问题后如何答题就见仁见智了,最简单的一个方式就是把问题提交到百度上,进行词频统计,大多数情况下词频多的为正确答案,于是我及其简单的做了处理:

代码语言:javascript
复制
class BrainKing(generics.GenericAPIView):
    def post(self, request):
        question_dict = request.data.get("data")
        question_text = question_dict["quiz"]
        choices = question_dict["options"]
        content = requests.get('http://www.baidu.com/s?wd=' + question_text, timeout=2).text
        for choice in choices:
            print(choice + " : " + content.count(choice))
        return Response("")

你以为我会用很高级的语义分析等自然语言处理吗?其实我也有试,但效果还不是很好,准确率不如词频统计,等优化后再说吧。

成果展示

用这个上分确实很快,不过缺点也是比较明显的,带一些干扰词就不行了,但总体上王者还是比较轻松的:

后期如果再加上 adb 命令,就可以实现自动化答题了。

我有个朋友真的靠纯答题上的王者,令人敬佩。最后提醒一下,游戏而已,不要为了攀比伤了和气。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python中文社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档