返回
前端小技巧:用 JavaScript 写个极简知乎答题王辅助工具
前端
2024-02-21 10:58:36
对于喜欢答题类游戏的朋友来说,最近知乎上流行的答题王游戏可谓是乐趣无穷。为了让答题更轻松,市面上涌现出各种辅助工具,但大多都是使用 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();
使用说明
- 将上面的 JavaScript 代码复制到文本编辑器中,保存为
.js
文件。 - 将
.js
文件放入一个目录中,然后打开该目录中的index.html
文件。 - 在
index.html
文件中,将<body>
标签中添加如下代码:
<script src="./script.js"></script>
- 点击运行,即可启动辅助工具。
原理
该辅助工具的原理非常简单:首先,它会通过 HTTPS 请求获取知乎答题王页面的 HTML 代码。然后,它会使用正则表达式从 HTML 代码中提取出所有问题的 ID 和答案。最后,它会自动填写答案并提交答题。
注意事项
- 使用本辅助工具需要安装证书。
- 本辅助工具仅用于娱乐目的,请勿作弊。
- 辅助工具的使用可能会影响游戏体验,请自行斟酌。
总结
本篇技术博文展示了如何使用 JavaScript 编写一个极简的知乎答题王辅助工具。该辅助工具易于使用,可以帮助你轻松答题,享受游戏乐趣。