返回

前端小技巧:用 JavaScript 写个极简知乎答题王辅助工具

前端

对于喜欢答题类游戏的朋友来说,最近知乎上流行的答题王游戏可谓是乐趣无穷。为了让答题更轻松,市面上涌现出各种辅助工具,但大多都是使用 Python 或 PHP 编写。作为一名资深的前端开发人员,笔者决定用 JavaScript 来编写一个极简的答题王辅助工具。

极简知乎答题王辅助

本辅助工具仅需简单的几行 JavaScript 代码,即可轻松实现自动答题功能,为你在答题王的征途中保驾护航。以下为具体代码:

// 安装证书
// 部分手机安装证书需要在系统安全以及网络连接设置中设置
const https = require('https');

// 这里输入下载的答题王脚本
const userScript = '';

// 注入脚本
const injectScript = (script) => {
  const scriptElement = document.createElement('script');
  scriptElement.innerHTML = script;
  document.body.appendChild(scriptElement);
};

// 启动辅助
const start = () => {
  https.get('https://www.zhihu.com/answer/create', (res) => {
    let data = '';
    res.on('data', (chunk) => { data += chunk; });
    res.on('end', () => {
      const target = data.match(/window.__INITIAL_STATE__ = (.*);/)[1];
      const questions = JSON.parse(target).entities.questions.list;
      for (let i = 0; i < questions.length; i++) {
        const question = questions[i];
        if (question.isChosen) {
          continue;
        }
        const answer = userScript.match(new RegExp(`"${question.id}": "(.*)"`, 'g'))[0].split('"')[3];
        const answerElement = document.querySelector(`input[data-id="${question.id}"]`);
        answerElement.value = answer;
        answerElement.dispatchEvent(new Event('change'));
      }
    });
  });
};

start();

使用说明

  1. 将上面的 JavaScript 代码复制到文本编辑器中,保存为 .js 文件。
  2. .js 文件放入一个目录中,然后打开该目录中的 index.html 文件。
  3. index.html 文件中,将 <body> 标签中添加如下代码:
<script src="./script.js"></script>
  1. 点击运行,即可启动辅助工具。

原理

该辅助工具的原理非常简单:首先,它会通过 HTTPS 请求获取知乎答题王页面的 HTML 代码。然后,它会使用正则表达式从 HTML 代码中提取出所有问题的 ID 和答案。最后,它会自动填写答案并提交答题。

注意事项

  • 使用本辅助工具需要安装证书。
  • 本辅助工具仅用于娱乐目的,请勿作弊。
  • 辅助工具的使用可能会影响游戏体验,请自行斟酌。

总结

本篇技术博文展示了如何使用 JavaScript 编写一个极简的知乎答题王辅助工具。该辅助工具易于使用,可以帮助你轻松答题,享受游戏乐趣。