自动化发布文章到知乎的探索

我的想法

我写文章的习惯是在Typora中编辑好md文件,然后发布到博客中,平台包括博客园和知乎。

发布到博客园时,博客园提供metaweblog来实现自动化新增和修改博客内容,连网页都不需要打开,文章就可以

发布和修改成功了。这对于后续我维护文章很有帮助,比如一段时间后我发现某篇文章的知识点需要更新,或某个

功能有新的方法可以实现,那么我只需要编辑本地文章md文件然后再执行python脚本就自动同步更新博客园中的

文章了。

但是知乎上面修改文章,每次我要这样做:

  1. 打开网页 — 找到我要修改的文章 — 点编辑
  2. 选择 文档导入 或者修改原文章

而且知乎没有提供一个方便搜索自己文章的功能,可以看这篇《如何搜索知乎站内文章?》,每当我想修改文章和

发布新文章时,做这些重复操作效率不高。

当然网上也有一键全平台发布的工具,可是这些工具我试用后有这几个问题:

  1. 免费用户每月有发布数量限制
  2. 需要我提供知乎的帐号和密码,我不确定安全性
  3. 在文章的结尾会带上工具的小尾巴,比如文章通过XXX发布

于是我决定自己实现一个这样的工具,用于自动化发布文章到知乎。

解决思路

我在浏览器使用开发者工具,F12抓取知乎提交,分析他的过程如下:

上传md,转换成html,把html进行上传

md中的图片会重新上传到知乎并替换掉文章中图片url

在F12的抓包里面,这个过程有很多步骤,时间有限未深入去研究

我的尝试和测试

基于上面的思路,我自己写了一版python代码,实现的功能如下:

先发布到草稿箱,如果条件满足,则会发布成为正式文章

发布到草稿箱,同一个标题多次发布会存在多篇,每篇的art_id不一样

意外惊喜,从草稿发布为正式文章时,还是会在草稿箱,但是没有标题,所幸的是图片已经上传好了。

我的方案

在我思考要不要继续写完python脚本时,遇到了 VSCode-Zhihu ,体验一段时间后给我的感觉是用着还可以,虽然截止2021年6月3日作者的更新停留在2020-9-24,不过插件在github上有源码,我拉取下来按照自己的需求进行了修改,目前用着也还顺手。

优点:

  1. 支持在md中插入剪粘板的图片 Ctrl+Alt+P
  2. 在vscode中就可以新增和更新已有文章,这点符合我的使用习惯,因为知乎不提供搜索自己文章的功能

缺点:

  1. 发布时不能选择话题
  2. 不支持命令行调用(也许vscode可以?需要去查阅下微软的文档)

vscode-zhihu插件修改记录:《知乎vscode插件修改和重新编译

github已有轮子

FreeOpenWrite 中的这个文件:zhihu_publish.py,但是每次需要手动输入验证码

github搜索关键字:zhuanlan.zhihu.com/api

TODO 未验证

可参考的库:《 zhihu-py3》中有讲到专栏《Post 专栏文章类

作者的新库主要解决授权问题《zhihu-oauth

posted @ 2021-09-24 17:58  赵青青  阅读(660)  评论(0编辑  收藏  举报