我的想法
我寫文章的習慣是在Typora中編輯好md檔案,然後釋出到部落格中,平臺包括部落格園和知乎。
釋出到部落格園時,部落格園提供metaweblog來實現自動化新增和修改部落格內容,連網頁都不需要開啟,文章就可以
釋出和修改成功了。這對於後續我維護文章很有幫助,比如一段時間後我發現某篇文章的知識點需要更新,或某個
功能有新的方法可以實現,那麼我只需要編輯本地文章md檔案然後再執行python指令碼就自動同步更新部落格園中的
文章了。
但是知乎上面修改文章,每次我要這樣做:
- 開啟網頁 — 找到我要修改的文章 — 點編輯
- 選擇 文件匯入 或者修改原文章
而且知乎沒有提供一個方便搜尋自己文章的功能,可以看這篇《如何搜尋知乎站內文章?》,每當我想修改文章和
釋出新文章時,做這些重複操作效率不高。
當然網上也有一鍵全平臺釋出的工具,可是這些工具我試用後有這幾個問題:
- 免費使用者每月有釋出數量限制
- 需要我提供知乎的帳號和密碼,我不確定安全性
- 在文章的結尾會帶上工具的小尾巴,比如文章通過XXX釋出
於是我決定自己實現一個這樣的工具,用於自動化釋出文章到知乎。
解決思路
我在瀏覽器使用開發者工具,F12抓取知乎提交,分析他的過程如下:
上傳md,轉換成html,把html進行上傳
md中的圖片會重新上傳到知乎並替換掉文章中圖片url
在F12的抓包裡面,這個過程有很多步驟,時間有限未深入去研究
我的嘗試和測試
基於上面的思路,我自己寫了一版python程式碼,實現的功能如下:
先發布到草稿箱,如果條件滿足,則會發布成為正式文章
釋出到草稿箱,同一個標題多次釋出會存在多篇,每篇的art_id不一樣
意外驚喜,從草稿釋出為正式文章時,還是會在草稿箱,但是沒有標題,所幸的是圖片已經上傳好了。
我的方案
在我思考要不要繼續寫完python指令碼時,遇到了 VSCode-Zhihu ,體驗一段時間後給我的感覺是用著還可以,雖然截止2021年6月3日作者的更新停留在2020-9-24,不過外掛在github上有原始碼,我拉取下來按照自己的需求進行了修改,目前用著也還順手。
優點:
- 支援在md中插入剪粘板的圖片 Ctrl+Alt+P
- 在vscode中就可以新增和更新已有文章,這點符合我的使用習慣,因為知乎不提供搜尋自己文章的功能
缺點:
- 釋出時不能選擇話題
- 不支援命令列呼叫(也許vscode可以?需要去查閱下微軟的文件)
vscode-zhihu外掛修改記錄:《知乎vscode外掛修改和重新編譯》
github已有輪子
FreeOpenWrite 中的這個檔案:zhihu_publish.py,但是每次需要手動輸入驗證碼
github搜尋關鍵字:zhuanlan.zhihu.com/api
TODO 未驗證
可參考的庫:《 zhihu-py3》中有講到專欄《Post 專欄文章類》
作者的新庫主要解決授權問題《zhihu-oauth》