一文多發小工具

天氰色等烟雨發表於2024-11-29

一個一文多發的釋出小工具

一個一文多發的釋出小工具,作為練手的專案。

概述:

如果有將文章分享到多個平臺的需求,可以藉助程式來簡化這一過程,節省時間並提高效率。

實現思路:

大多數平臺支援markdown格式的文字內容,將.md檔案作為入口檔案讀取,釋出到各個平臺;

  • 由於markdown格式的圖片為本地/外鏈地址,為統一路徑且支援平臺獲取圖片,需將本地文章的圖片地址設定為圖床的外鏈地址;
  • 程式會將外鏈圖片地址轉成對應的平臺圖片地址,避免圖床圖片連結的不穩定和不必要的流量消耗;

釋出方式主要使用:平臺提供支援的開放API、瀏覽器自動化模擬釋出操作、平臺釋出介面的請求;

  • 由於部分平臺涉及加密引數/csrf防禦認證等反爬手段,導致功能不穩定及難以維護,如平臺涉及請求引數認證,儘量使用自動化的方式實現釋出;
  • 自動化釋出預設使用谷歌瀏覽器,使用dp讀取本地瀏覽器使用者檔案資訊,執行程式前需關閉已經執行的本地瀏覽器,否則會造成衝突;

使用python語言實現,非同步方式進行多平臺的文章釋出,可以節省釋出的時間,用AI輔助寫了一個簡單的前端頁面,透過頁面操作上傳本地md格式檔案的方式實現文章釋出。

各平臺釋出方式:

csdn:使用自動化釋出方式,瀏覽器平臺頁面js自動讀取外鏈圖片地址轉為平臺圖片地址,模擬使用者釋出文章操作;

掘金:草稿請求不需要引數認證,釋出請求使用自動化釋出方式,瀏覽器平臺頁面js自動讀取外鏈圖片地址轉為平臺圖片地址,完成釋出操作;

部落格園:平臺提供metaweblog的開放api介面支援(需開啟並配置自己賬號的api許可權),支援圖片素材的上傳,直接請求介面釋出即可;

微信公眾號:平臺提供開發者的開放api介面支援(需開啟並配置自己賬號的api許可權),支援圖片素材的上傳,直接請求介面釋出即可;

自建部落格網站:以halo為例,一般建站軟體都提供個人令牌的使用者認證,可直接請求文章釋出介面,或讀取瀏覽器的使用者cookie作為認證進行釋出;

釋出一篇文章的操作示例:

將程式打包成.exe或在開發的ide上執行,程式會自動開啟谷歌瀏覽器(必須關閉本地已經執行的谷歌瀏覽器),訪問http://127.0.0.1:8000/,頁面如下:

預設開啟所有的釋出源,點選頁面的”選擇檔案“進行本地.md檔案的上傳,然後點選上傳;

預設未設定無頭瀏覽器,點選上傳後會彈出對應網站的自動化操作(如果介意可以開啟無頭設定);

等待文章釋出完,在頁面釋出結果中會更新發布文章的狀態,比如下面的釋出結果:

接下來就可以在各發布源平臺上看到自己釋出的文章了。

相關資源收集:

這裡在網路收集了一些釋出工具,可供參考:

openWrite:一款收費的一文多發軟體,透過新增瀏覽器外掛在網站頁面上完成文章的釋出,支援多個平臺,使用較為簡便,缺點是部分功能收費,使用者cookie會被上傳;

blog-auto-publishing-tools:使用selenium瀏覽器自動化模擬使用者釋出操作,支援的平臺挺多,自動化方式可以保證功能上的長期穩定,維護起來也較為方便,專案地址:https://github.com/ddean2009/blog-auto-publishing-tools/tree/main

siyuan-plugin-publisher:思源筆記的一文多發外掛,需要使用思源筆記匯入/寫文章,透過該外掛進行文章的釋出,使用較為簡便,支援的平臺也很多,釋出時需要注意文章的書寫格式,專案地址:https://github.com/terwer/siyuan-plugin-publisher/tree/main

artipub:一款開源的一文多發平臺,後端使用自動化工具Puppeteer模擬釋出,功能較為豐富,但是專案已長時間未更新,專案地址:https://github.com/crawlab-team/artipub

專案倉庫地址:Cyanty/one-article-submission: 一個一文多發的釋出小工具

相關文章