你是否也有瀏覽器書籤雜亂無章的困擾?資料夾一層又一層,想找個網站卻要翻找半天?本文將分享一個實用的書籤整理方法,讓你輕鬆管理數千筆書籤!
問題背景
在日常使用瀏覽器的過程中,我們常常會儲存各種有用的網頁。隨著時間推移,書籤數量暴增,資料夾結構也越來越複雜。就像我遇到的情況:
- 4,000+ 筆書籤
- 400+ 個資料夾
- 多層巢狀結構
- 找尋特定書籤耗時費力
解決方案概述
為了徹底解決這個問題,我設計了一個完整的書籤整理流程:
- 匯出所有書籤
- 使用 Python 程式將書籤結構扁平化
- 重新匯入瀏覽器
- 使用擴充功能找出重複書籤
- 透過 JavaScript 批次處理重複項目
詳細步驟說明
1. 匯出書籤
在 Chrome 書籤管理員(chrome://bookmarks/)右上角點三點選單 → 匯出書籤,會下載一個 .html 檔案,包含所有書籤的網址、標題、加入時間等資訊。
2. Python 程式處理
先安裝相依套件:
1
| pip install beautifulsoup4
|
使用 BeautifulSoup 處理匯出的 HTML 檔案,把所有書籤拉到同一層:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| from bs4 import BeautifulSoup import re
def process_bookmarks(html_content): soup = BeautifulSoup(html_content, 'html.parser') bookmarks = soup.find_all('a') new_html = """<!DOCTYPE NETSCAPE-Bookmark-file-1> <!-- This is an automatically generated file. It will be read and overwritten. DO NOT EDIT! --> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> <TITLE>Bookmarks</TITLE> <H1>Bookmarks</H1> <DL><p> <DT><H3 ADD_DATE="1685050416" LAST_MODIFIED="1732586801" PERSONAL_TOOLBAR_FOLDER="true">書籤列</H3> <DL><p>""" for bookmark in bookmarks: bookmark_html = str(bookmark) if bookmark_html.strip(): new_html += f" <DT>{bookmark_html}\n" new_html += """ </DL><p> </DL><p>""" return new_html
with open('bookmarks_export.html', 'r', encoding='utf-8') as f: content = f.read() print("讀取到的內容長度:", len(content)) print("內容的前100個字元:", content[:100])
processed_html = process_bookmarks(content) with open('bookmarks_flattened.html', 'w', encoding='utf-8') as f: f.write(processed_html) print("已處理完整內容並儲存。")
|
注意: 腳本中 <H3> 的 ADD_DATE 與 LAST_MODIFIED 是範例中的固定值,匯入後書籤列資料夾的時間戳會顯示為這個時間點,但每一筆 <a> 連結本身的 ADD_DATE 屬性會從原始檔保留下來,個別書籤的新增日期不受影響。
3. 重新匯入瀏覽器
在 Chrome 書籤管理員(chrome://bookmarks/)右上角點三點選單 → 匯入書籤,選取 bookmarks_flattened.html。匯入後所有書籤都在同一層,方便後續整理。
4. 使用 Bookmarks clean up 尋找重複
安裝 Bookmarks clean up 擴充功能後,可以自動找出重複的書籤。但是這個工具沒有批次處理功能,如果重複項目很多(像是超過 2,000 個),一個個點選會非常耗時。
5. JavaScript 批次處理
開啟 Bookmarks clean up 擴充套件頁面,按 F12 開啟 DevTools,切到 Console 分頁,貼入以下程式碼執行。
腳本會找出路徑包含特定字串的重複項目並自動勾選。使用前請先把 '//書籤列/已匯入' 改成你自己匯入書籤所在的資料夾路徑,否則過濾結果會是 0 筆。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| async function checkDuplicateBookmarks() { const folderUrls = document.querySelectorAll('.folder-url'); let count = 0; const targetUrls = Array.from(folderUrls).filter(url => url.textContent.includes('//書籤列/已匯入') ); console.log(`找到 ${targetUrls.length} 個項目需要處理`); for (const url of targetUrls) { const listItem = url.closest('.list-group-item'); const checkbox = listItem?.querySelector('input[type="checkbox"]'); if (checkbox) { checkbox.click(); count++; console.log(`已處理 ${count}/${targetUrls.length} 個項目`); await new Promise(resolve => setTimeout(resolve, 100)); } } console.log('處理完成!'); }
checkDuplicateBookmarks().catch(console.error);
|
實用擴充推薦
書籤管理常用擴充功能
Bookmarks clean up:本文流程的核心工具。可自動找出重複書籤、偵測失效連結、刪除空資料夾、合併資料夾,支援多種比對模式。書籤量大時搭配上面的 JavaScript 腳本批次勾選,比手動一個個點省事很多。
Sprucemarks:整理完結構後,用它依名稱、日期或網域自動排序,支援資料夾內部排序。對習慣用鍵盤搜尋書籤的人幫助有限,但如果你常在書籤欄瀏覽,排序後會清楚很多。
TAB SORTER:管理分頁而非書籤。開了幾十個分頁時可依網域分組、快速找出重複分頁,跟書籤整理流程是不同層面的需求。
幾個後續維護的建議
書籤整理完之後,資料夾層級盡量壓在 2-3 層以內,分類越粗越好維護。書籤量重新累積到失控之前(大概 3-6 個月),跑一次 Bookmarks clean up 清重複、清失效連結,比等到 4,000 筆再一次大掃除省力得多。