wxdown 公眾號離線文章儲存(GO語言開發)

天葬發表於2024-05-20

簡介

本來一開始用 nodejs 寫的,考慮大小、易操作、高效能、跨平臺以及環境等問題,我就想能不能搞個不需依賴開發語言環境就能執行的。所以我就選擇 go並且它本身就具備以上優點。作者本身是java開發,第一次使用 go所以過程也是比較艱難,好在 GPT 在學習一門新的開發語言方面還是相當給力!💪💪💪

這是一個用於儲存公眾號文章到本地離線檢視的軟體,支援將 HTML 文章儲存至本地,並提供 HTML 轉 PDF 的功能。此外,軟體還支援圖片素材管理,可在 Windows、Mac 和 Linux 系統上執行,使用 Go 語言開發,具備輕量級、小體積、高效能和併發支援的特點。不支援批次直接獲取文章列表

功能特點

  • 儲存公眾號文章至本地
  • 支援將 HTML 文章轉換為 PDF 格式(需安裝 wkhtmltopdf
  • 圖片素材管理
  • 儲存原始地址
  • 跨平臺支援:Windows、Mac 和 Linux
  • 使用 Go 語言開發,輕量級、高效能、高併發
  • 提供簡單易用的 Web 介面管理

下載

作業系統 版本/架構 大小
Windows wxdown-1.0.0-windows-amd64.exe 9.23MB
ARM Linux wxdown-1.0.0-linux-arm64 8.75MB
Linux wxdown-1.0.0-linux-amd64 9.04MB
macOS wxdown-1.0.0-darwin-amd64 9.09MB
macOS(Apple Silicon) wxdown-1.0.0-darwin-arm64 8.75MB

安裝和執行

Windows

包含了 wkhtmltopdf

  1. 解壓縮包
  2. 開啟目錄
  3. 雙擊 wxdown-1.0.0-windows-amd64.exe 啟動
  4. 瀏覽器訪問 http://127.0.0.1:81

如下所示啟動成功:

cwd: E:\code\go\go-wx-download
----------------------------------------
        歡迎使用 wxdown 工具!
----------------------------------------
執行模式 : binary
軟體版本 : 1.0.0
作業系統 : windows
系統架構 : amd64
啟動時間 : 2024-05-19 00:00:00
----------------------------------------
服務資訊
----------------------------------------
服務地址:
        http://192.168.31.209:81        (瀏覽器訪問)
        http://192.168.202.1:81 (瀏覽器訪問)
        http://192.168.11.1:81  (瀏覽器訪問)
        http://172.26.192.1:81  (瀏覽器訪問)
        http://127.0.0.1:81     (瀏覽器訪問)
採集介面:
        http://192.168.31.209:81/gather/        (GET|POST|HEAD)
        http://192.168.202.1:81/gather/ (GET|POST|HEAD)
        http://192.168.11.1:81/gather/  (GET|POST|HEAD)
        http://172.26.192.1:81/gather/  (GET|POST|HEAD)
        http://127.0.0.1:81/gather/     (GET|POST|HEAD)
----------------------------------------
配置資訊
----------------------------------------
執行路徑 : E:\code\go\go-wx-download
資源路徑 : E:\code\go\go-wx-download\data

Linux

新增許可權

chmod +x wxdown-1.0.0-linux-amd64

啟動程式

root@mac-max:/home/wx# ./wxdown-1.0.0-linux-amd64 
cwd: /home/wx
----------------------------------------
        歡迎使用 wxdown 工具!
----------------------------------------
執行模式 : binary
軟體版本 : 1.0.0
作業系統 : linux
系統架構 : amd64
啟動時間 : 2024-05-19 00:00:00
----------------------------------------
服務資訊
----------------------------------------
服務地址:
        http://192.168.31.156:81        (瀏覽器訪問)
        http://172.17.0.1:81    (瀏覽器訪問)
        http://172.18.0.1:81    (瀏覽器訪問)
        http://127.0.0.1:81     (瀏覽器訪問)
採集介面:
        http://192.168.31.156:81/gather/        (GET|POST|HEAD)
        http://172.17.0.1:81/gather/    (GET|POST|HEAD)
        http://172.18.0.1:81/gather/    (GET|POST|HEAD)
        http://127.0.0.1:81/gather/     (GET|POST|HEAD)
----------------------------------------
配置資訊
----------------------------------------
執行路徑 : /home/wx
資源路徑 : /home/wx/data

Mac

出現 permission denied 表示沒有許可權

(base) mac@macdeMacBook-Pro-3 ~ % /Users/mac/Desktop/wxdown-1.0.0-darwin-amd64/wxdown-1.0.0-darwin-amd64  
zsh: permission denied: /Users/mac/Desktop/wxdown-1.0.0-darwin-amd64/wxdown-1.0.0-darwin-amd64

新增許可權

(base) mac@macdeMacBook-Pro-3 ~ % chmod +x /Users/mac/Desktop/wxdown-1.0.0-darwin-amd64/wxdown-1.0.0-darwin-amd64

雙擊 wxdown-1.0.0-darwin-amd64 啟動或命令啟動

(base) mac@macdeMacBook-Pro-3 ~ %  /Users/mac/Desktop/wxdown-1.0.0-darwin-amd64/wxdown-1.0.0-darwin-amd64

執行結果同上

簡單使用會下載和安裝就可以了,後面都基本沒啥用了😄😄,不用再看了

目錄結構

  • web:HTML 頁面,很簡單也可以自己修改
    • index.html 主頁面
    • images.html 圖片預覽頁面
  • config.yaml:系統全域性配置檔案
  • wxdown-1.0.0 可執行檔案,程式入口

config.yaml

# 服務埠
port: 81

# 本地資料檔案儲存路徑
path: ./data

# HTML 轉 PDF 配置
# 下載 wkhtmltopdf 路徑 https://wkhtmltopdf.org/downloads.html
# window 建議下載後將 wkhtmltopdf目錄下載所有內容複製到專案根目錄下
wkhtmltopdf:
  # true 開啟 false 關閉 預設關閉
  enable: false
  # linux 例如:/usr/local/wkhtmltopdf/bin/
  # window 例如:E:\Program Files\wkhtmltopdf\bin
  path:

# 採集執行緒配置
thread:
  # 同時下載 HTML 執行緒數量
  html: 5
  # 同時下載圖片執行緒數量
  image: 10

介面

採集介面

  • GET僅支援單次下載,POST 支援批次提交,請求頭型別 JSON 格式
  • http://127.0.0.1:81/gather/+需採集地址。就可以直接把地址發給採集軟體
地址 請求方式 請求引數 請求體
http://127.0.0.1:81/gather/ GET /gather/https://mp.weixin.qq.com/1
HEAD /gather/https://mp.weixin.qq.com/1
POST /gather/ ["https://mp.weixin.qq.com/1","https://mp.weixin.qq.com/2",...]

書籤指令碼

注意⚠️:如果啟動軟體的機器和瀏覽文章的機器不是一臺機器,使用區域網 IP(192.168.0.xxx)替換 127.0.0.1

javascript:fetch("http://127.0.0.1:81/gather/" + window.location.href,{mode:"no-cors"});

使用方法:

  1. 瀏覽器書籤欄➡️右鍵➡️新增網頁...➡️名稱:隨便你能記住就行➡️網址:輸入下面js指令碼
  2. 開啟瀏覽器公眾號文章
  3. 點選上面新增的書籤指令碼軟體會自動採集

資源介面

地址 請求方式 請求引數 請求體
http://127.0.0.1:81/articles GET

開啟資料夾介面

地址 請求方式 請求引數 請求體
http://127.0.0.1:81/open/ GET /open/公眾號名稱

使用示例

主頁面

主介面

文章列表

文章列表

圖片庫

相簿

開發和貢獻

本軟體使用 Go 語言開發,歡迎開發者貢獻程式碼或提出改進建議。請在 GitHub 上提交 issue 或 pull request。

注意事項

  • 請勿傳播未經授權的文章或圖片。
  • 在儲存、轉換文章或管理圖片時,請注意版權和法律規定。

相關文章