如何從Notion上快速下載頁面所有圖片

身爲一個Notion使用者,可能會在Notion上放上大量圖片,但是,Notion原生並沒有一鍵就能將圖片下載回來的功能。

步驟

以html匯出頁面

這樣就能快速取出所有圖片,不過中文檔名,會變成UTF8編碼,就需要透過解碼才能還原成本來的中文檔名。

用重新命名UTF8編碼後的圖片名稱

中文檔名放上Notion時,檔名會經過「UTF-8」編碼。

因此下載的檔名,只要經過解碼,就能還原回

Python Code

import os
import urllib.parse
import tkinter as tk
from tkinter import filedialog, messagebox

# 解碼圖片名稱並重新命名
def decode_and_rename_files(folder_path):
    try:
        # 確保資料夾不是空的
        if not folder_path:
            messagebox.showwarning("錯誤", "請選擇資料夾!")
            return
        
        # 遍歷資料夾中的所有檔案
        renamed_count = 0
        for filename in os.listdir(folder_path):
            if '%' in filename:
                # 解碼檔名
                decoded_filename = urllib.parse.unquote(filename)
                old_file_path = os.path.join(folder_path, filename)
                new_file_path = os.path.join(folder_path, decoded_filename)
                
                # 重命名檔案
                os.rename(old_file_path, new_file_path)
                renamed_count += 1
        
        messagebox.showinfo("完成", f"已成功重新命名 {renamed_count} 個檔案!")
    except Exception as e:
        messagebox.showerror("錯誤", f"發生錯誤: {str(e)}")

# 讓使用者選擇資料夾
def select_folder():
    folder_selected = filedialog.askdirectory()
    folder_path.set(folder_selected)

# 主介面
root = tk.Tk()
root.title("圖片名稱解碼工具")

# 資料夾路徑變數
folder_path = tk.StringVar()

# 介面布局
tk.Label(root, text="選擇要解碼的圖片資料夾:").pack(pady=10)
tk.Entry(root, textvariable=folder_path, width=50).pack(padx=10)
tk.Button(root, text="選擇資料夾", command=select_folder).pack(pady=5)
tk.Button(root, text="開始轉換", command=lambda: decode_and_rename_files(folder_path.get())).pack(pady=10)

# 開始主循環
root.mainloop()

變成GUI方便操作

按下轉換,UTF8名稱的圖片就還原成本來的名稱了。