项目地址: https://github.com/zhangolve/zhihu-answer-convert-to-md-by-node
不知道你是否像我一样,有一个基于 hexo 的博客,同时还在知乎上比较活跃,有一些自己的答案。如果是,可以继续看下去了,这个小工具是可以将你的知乎答案以 hexo 博客模板的 md 文件形式备份到本地,方便了你对你自己知乎答案的利用,避免了重复的复制粘贴。
git clone https://github.com/zhangolve/zhihu-answer-convert-to-md-by-node
进入 zhihu-answer-convert-to-md-by-node 文件夹内,
npm install
将 config.example.js 文件重命名为 config.js ,也就是去掉中间的.example
,打开重命名后的 config.js 文件,修改配置。
首先得到 cookie ,方法是:
打开已经登录的知乎,在 Chrome 控制台输入
document.cookie
将得到的字符串粘贴到对应的位置。
zhihuId 为你想要的知乎用户的知乎 Id ,由于这个项目是为了得到自己的知乎答案方便导出到 hexo 博客或其他用处,因此,建议填写自己的知乎 Id ,找知乎 id 的方法是找到自己的知乎主页,比如我的知乎主页是:
https://www.zhihu.com/people/zhang-hai-26/activities
则我的知乎 Id 就是 zhang-hai-26,将它复制粘贴到对应的位置即可。
至于 authorization 的获取,方法是使用 Chrome 浏览器,打开你的知乎主页,比如我的知乎主页是: https://www.zhihu.com/people/zhang-hai-26/activities ,然后按 F12 或者右键选择检查,切换到 Network (网络)标签,刷新页面,这个时候选择一个 activity 或者 answer 开头的文件,点击它,然后将右面 Request headers 里面的 authorization 对应的字符串复制下来。粘贴到 config.js 对应的位置。
执行
npm start
如果 config.js 的配置没有问题的话,那么执行该脚本之后将会在接下来的一分钟以内,下载最多最近的 1000 个答案,如果您的知乎答案少于 1000 个,将下载到您的所有答案。
如果你已经完成了 md 文件的写入,这个时候,你会在项目文件夹下得到两个目录,一个是以你的知乎 Id 命名的文件夹,用于存放最原始的答案 json 数据,另外一个文件夹则是用来存放 md 文件的,打开它之后我们就能够看到所有的答案了。
他们的规范都是 hexo 博客规范,因此可以直接将你想要放到博客中的文件放到博客文章目录之下,也可以对生成的 markdown 文件进行再编辑,也可以向我一样,把整个生成的 markdown 文件夹放到博客的一个子目录下,总之,材料就在那里,怎样用其实很灵活。
可以看我的博客: http://hktkdy.com/categories/%E7%9F%A5%E4%B9%8E/
我的博客的知乎 category 里面放的就是我用爬虫爬到的所有答案,实际情况是,对文字支持较理想,对图片资源的利用目前还没解决,致使目前所有文章都属于无图状态,因此不建议答案中含有多图的答主使用该工具。
这个小项目是我练习 node 爬虫的一个小作品,目前实现的功能还比较简单,可扩展性还很高。
1
SpicyCat 2017-01-10 22:10:27 +08:00 1
支持一下。
|
3
q99103248 2017-01-10 23:29:11 +08:00
先 star 再说
|
4
Abigale 2017-01-11 10:54:02 +08:00
厉害,先 follow 了。
|
6
moxiaonai 2017-01-11 13:49:48 +08:00
不错 star+1
|
7
Maic 2017-01-12 12:27:58 +08:00 via iPhone
你那个 50 咋来的?
|
8
zhangolve OP @Maic 你应该看了源码吧,每次调用产生 20 个答案数据,产生一个 json 文件, 50 的话,也就是产生 1000 个答案,这是最多的。也就是说如果你有 300 个答案,实际上还是会产生 50 个 json 文件,其中有 35 个没有答案数据。如果你有 1200 个答案,嗯我用张佳玮的知乎答案做过测试,他有超过 1000 条答案,但只保存下了最近的 1000 条。
这一块为了省事做得比较简单,普通人应该不会有超过 1000 个答案,当然,也确实可以再改进。也欢迎你去 github 项目里提 issue. |
11
spice630 2017-01-12 23:05:46 +08:00
登录之后的 就很简单了。。
|
13
Antidictator 2017-01-13 21:01:10 +08:00 via Android
cookie 那些一直 commit 上去真的好吗
|
14
zhangolve OP @Antidictator config.example.js 里面的 cookie 不是真的。
|
15
Antidictator 2017-01-14 21:03:47 +08:00 via Android
@zhangolve 哦哦
|