AI版知乎
有没有想过在知乎上提问,不是人来回答你的问题,而是机器来回答?
这篇文章介绍一个实现思路,利用技术大批量回答「知乎」上的问题。
作为一个个体知识量的储备是有限的,况且每天信息更新这么快,我们又这么忙,哪有空余的时间是一个个信息学习,理解,消化。
这时候,机器的作用就大了。机器可以海量的存储数据,快速处理数据,提取我们关心的内容,我们人类只需要做二次加工即可。
趁今天周五,我忙里偷闲,写了几行代码,完成了一个知乎答题AI。
实现的步骤如下:
STEP 01 我关心的话题
打开知乎创作者中心,打开功能下的问题推荐,点击管理擅长话题,输入我关心的话题,比如”人工智能“,然后打开chrome开发者工具,console面板注入:
var as=document.querySelectorAll('.ToolsGoodAtTopic-topicButton');
for(let i=0;i<as.length;i++){
as[i].click();
};
自动添加我关心的子话题。
ps:知乎关心的话题是有数量限制的,后续可以再写个代码,批量去掉关心的子话题。
STEP 02 获取推荐问题
批量获取知乎推荐的问题,在开发者工具console面板,注入以下代码:
//获取知乎推荐的问题
async function postData(_limit = 100) {
var _url = "https://www.zhihu.com/api/v4/contributor-personalized-questions?limit=" + _limit + "&offset=0&new=0&include=data%5B*%5D.label%2Creason_info%2Cexcerpt";
return new Promise(function (resolve, reject) {
fetch(_url, {
method: 'GET', // *GET, POST, PUT, DELETE, etc.
mode: 'no-cors', // no-cors, cors, *same-origin
})
.then(response => response.json())
.then(data => {
var res = "";
data.data.forEach((d) => {
res += d.question.title + "n";
});
console.log(res)
resolve(res);
});
})
};
我拉取了500条,
postData(500)
如图所示:
STEP03 通过GET写作来回答问题
答题环节主要利用GET写作的一些功能,批量计算了这500个问题里,哪些值得回答,并且把答案准备好,推荐给我,此部分基于GET写作的功能实现。
我把展示下其中一个问题的结果,如下图。
AI把答案需要涉及的点分门别类整理了出来,是不是很方便就可以二次编辑,创作?
STEP04 人机协作
这时候,我们只需要挑选感兴趣的问题,稍微修改下,就可以回答啦~
这里为了节省时间,我稍微修改了下以上的代码,把知乎问题的url,也保留了下来,方便点击链接直接复制答案,跳转到知乎去回答问题。
var res={}
data.data.forEach((d) => {
res[d.question.title]=d.question.url
});
console.log(res)
后续可以考虑开发一个自动发布工具,把答案直接发布到知乎。
欢迎加入mixlab无界社区共同探索,
可以加shadow的朋友圈,或者知识星球。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 在Ubuntu 14 上安装 Nginx-RTMP 流媒体服务器的教程
- centos8自定义目录安装nginx(教程详解)
- VMware下Centos7桥接方式网络配置步骤详解
- Linux CentOS 6.5 卸载、tar安装MySQL的教程
- Linux CentOS 6.5 ifconfig查询不到ip的解决方法
- 打卡群2刷题总结1009——二叉树的中序遍历
- 解决Ubuntu 18.04安装VMwareTools错误问题
- 对linux下syslogd以及syslog.conf文件的解读说明
- Linux下安装tomcat并部署网站(推荐)
- 解决Linux中ifconfig和addr查看不到ip问题
- 【软件测试】面试中问到Linux命令,你都答上来了吗?【送书】
- Linux用户自定义at、cron计划任务执行的方法
- Linux下Oracle设置定时任务备份数据库的教程
- centos8 使用yum 安装 rabbitmq的教程
- linux exa命令(比ls更好的展示文件体验)