Skip to content
Danny Lin edited this page Oct 10, 2024 · 22 revisions

基本操作

三種基本用法

網頁剪貼簿提供豐富的選項,因此有很多種使用方式。以下介紹三種基本用法及設定方式:

1. 獨立檔案型

仿照瀏覽器原生的另存功能,每次都把擷取的網頁儲存成單獨檔案,日後可從檔案管理器尋找及開啟。瀏覽器若設定下載檔案時詢問儲存位置,則可在擷取網頁時指定儲存位置。

  • 儲存擷取資料至: 設定為 檔案

  • 儲存擷取資料為: 設定為想要的存檔類型。一般選 單一 HTML 檔案 最方便;若設定為 HTZ 封存檔MAFF 封存檔,需要做一些設定以便從檔案管理器直接開啟封存檔。

  • 可調整 儲存檔名: 設定擷取檔案的預設檔名,一般常用 %title%

2. 目錄管理型

把擷取的網頁統一儲存至指定的目錄下,一樣可從檔案管理器尋找及開啟。此方式支援儲存為資料夾,也可設定自動產生子目錄,缺點是由於瀏覽器的安全限制,只能儲存在瀏覽器的 <預設下載資料夾> 下。

  • 儲存擷取資料至: 設定為 剪貼簿資料夾

  • 儲存擷取資料為: 設定為想要的存檔類型。一般選 資料夾 功能最完整,單一 HTML 檔案 較方便;若設定為 HTZ 封存檔MAFF 封存檔,需要做一些設定以便從檔案管理器直接開啟封存檔。

    Google Chrome 或一些 Chromium 系瀏覽器選擇 資料夾 時,宜取消勾選 下載每個檔案前先詢問儲存位置 瀏覽器設定(位於 chrome://settings/downloads),否則每個待儲存檔案都會跳出確認視窗。(詳見 已知問題

  • 可調整 剪貼簿資料夾: 把下載的網頁放到 <預設下載資料夾> 下的其他子目錄。

  • 可調整 儲存檔名: 設定擷取檔案的預設檔名,一般常用 %title%;若想用擷取時間分組,也可以設定成像 %create-Y%/%create-m%/%title%

3. 瀏覽器側欄型

此法須安裝後端伺服器,擷取的檔案會直接儲存到後端伺服器,安裝網頁剪貼簿擴充套件的瀏覽器可連線至後端伺服器並透過側欄(工具列按鈕 > 開啟剪貼簿)檢視及管理剪貼簿。

  • 安裝 PyWebScrapBook

  • 指示設定後端伺服器。

    例如要以 C:\Users\MyUserName\WebScrapBook 目錄作為剪貼簿。先開啟並進入命令列(Windows 系統可執行命令提示字元 (CMD)),切換工作目錄至該目錄,執行 wsb config -ba。此時會建立 .wsb 子目錄並產生設定檔,以後只要執行 C:\Users\MyUserName\WebScrapBook\.wsb\serve.py 即可啟動後端伺服器(不要關閉跳出的視窗,除非想關掉伺服器)。

    更多進階設定方式可參見這裡

  • 在網頁剪貼簿的選項設定後端伺服器網址使用者、及密碼。(若後端伺服器未特別設定,預設網址為 http://localhost:8080/,使用者及密碼皆為空白。)

  • 儲存擷取資料至: 設定為 後端伺服器

  • 儲存擷取資料為: 一般建議設為 資料夾,若有節省儲存空間及減少檔案數量的需求可選擇 HTZ 封存檔MAFF 封存檔。此選項只影響新擷取檔案的儲存格式,不影響原有存檔,不同類型的存檔亦可混合使用。

    雖然後端伺服器也支援 單一 HTML 檔案 格式,但此格式較佔空間,無法保存部分複雜格式,且無法支援部分進階功能,一般較不建議使用。

    PyWebScrapBook 有提供命令列轉換工具 wsb convert 供需要時轉換格式。

  • 可視需要調整 儲存檔名:,但建議使用預設的 %ID%,以避免潛在的相容性問題。

  • 使用時須先啟動後端伺服器,然後即可透過網頁剪貼簿擴充套件擷取頁面或透過側欄檢視及管理資料。

    若希望後端伺服器在開機或使用者登入後自動啟動,可把後端伺服器的啟動檔 .wsb/serve.py 加入作業系統服務或如 Windows 的「啟動」資料夾。

    Windows 作業系統若想隱藏後端伺服器的對話視窗,可把 .wsb/serve.py 更名為 .wsb/serve.pyw。隱藏對話視窗時,若要關閉後端伺服器,可從工作管理員操作。

  • 後端伺服器亦可建立靜態站台索引(工具列按鈕 > 選項 > 執行索引器),以供未安裝網頁剪貼簿擴充套件的客戶端瀏覽擷取的頁面。

擷取網頁

  • 開啟網頁,等待頁面載入完成,即可開始擷取。

    注意:有些網頁會用腳本動態載入資源,頁面載入後可能需要稍微等待、把螢幕向下捲動、或做其他互動操作,才會完整載入想要的內容。

  • 一般可點擊 工具列按鈕(又稱 瀏覽器動作按鈕),從下拉選單中選擇 擷取分頁,即會跳出擷取視窗並開始擷取作業。完成後會依設定的方式儲存(詳見前節)。

  • 若網頁中有用滑鼠選取內容,則 擷取分頁 只會擷取選取範圍的內容。有些瀏覽器(如 Firefox)支援多段選取,可按住 Ctrl 鍵選擇多段範圍,網頁剪貼簿也會如實只擷取那些範圍。

  • 擷取分頁 是擷取目前螢幕上呈現的樣貌(擷取完成前不可關閉原分頁),擷取分頁 (原貌) 是擷取未經腳本動態處理的頁面原始 HTML 內容,擷取分頁 (書籤) 是擷取為類似瀏覽器書籤的書籤檔案(或剪貼簿中的書籤項目),日後可開啟書籤連回原網頁。擷取分頁為... 則會開啟設定視窗,以便擷取前做客製化設定。

  • 可用 編輯分頁 編修網頁內容或加上註記,再擷取編修後的網頁。

  • 可用右鍵選單選擇擷取不同的頁面元素,例如在超連結上按右鍵可擷取連結的網頁,在圖片或多媒體上按右鍵可擷取該多媒體,在框架頁中按右鍵可擷取該框架頁,在頁面或框架頁中選擇一段內容按右鍵可擷取該選擇範圍等等。

  • 可用瀏覽器內建的管理擴充套件快捷鍵功能為擷取分頁等功能設定快捷鍵。

  • 如有安裝後端伺服器,可把 擷取分頁(或類似的)指令按鈕拖放至側欄中的特定位置,即可同時擷取及指定放置位置。

    用拖放方式擷取分頁

  • 同理,可拖放網頁中的超連結、圖片等物件以進行擷取。

  • 點擊或拖放 擷取分頁 等工具列按鈕時可按住 Shift 切換擷取分頁或原貌,按住 Alt 擷取為書籤,或按住 Ctrl 開啟擷取設定視窗。

批次擷取

可用以下方式啟動批次擷取,以循序擷取多個網頁:

  • 按住 Ctrl 或 Shift 選擇多個分頁再點擊或拖放工具列按鈕的 擷取分頁(或類似指令)。

  • 用工具列按鈕的 批次擷取所有分頁 啟動批次擷取。該對話視窗會預先填入所有分頁,以便後續操作。

  • 用工具列按鈕或右鍵選單的 批次擷取選取的超連結 啟動批次擷取。該對話視窗會預先填入頁面中所有超連結或選取範圍中的超連結,以便後續操作。

擷取連結檔案

有些網頁含有以超連結形式附加的圖片、音訊、或檔案,可到網頁剪貼簿選項的 擷取 - 擷取超連結 群組,把 下載連結檔案 改為 比對網址副檔名比對 HTTP 標題及網址副檔名,並在 下載連結檔案列入檔案類型 設定好適當的條件(例如 bmp, gif, jpg),即會在擷取網頁時一併儲存超連結指向的檔案。

擷取連結網頁(深層擷取)

可到網頁剪貼簿選項設定 擷取 - 擷取超連結,把 擷取連結頁面深度 改為正整數,並在 擷取連結頁面列入網址 設定篩選條件(可填入完整網址或用正規表示式做局部比對),即會在擷取網頁時一併擷取符合條件的連結網頁,並建立交互連結及產生資源表。深層擷取的項目會記錄為「網站」(site)類型。

例如網頁 http://example.com/foo 連結到另一網頁 http://example.com/bar,可填入 http://example.com/bar 額外擷取該連結網頁,或填入 /^http://example\.com// 額外擷取同網域下的連結網頁。

小技巧:也可以把 擷取連結頁面深度 設為 0,此時只會擷取目前頁面,但也會建立資源表,再搭配後述的「合併擷取」加入其他頁面。

深層擷取時,儲存擷取資料為 建議設為 資料夾。若設為 HTZ 封存檔MAFF 封存檔 也可以執行,但擷取的頁面過多時可能因記憶體不足導致擷取失敗,加註或編輯巨大封存檔中的頁面也容易發生效能問題,此外之後也無法用合併擷取加入更多網頁。

重新擷取

如有安裝後端伺服器,可在側欄已擷取的網頁、網站、書籤等項目透過右鍵選單啟動重新擷取。或啟動 擷取分頁為... 後在對話視窗把 擷取方式 設為 重新擷取,並選擇適當的 目標項目

重新擷取網頁會取代原來項目的內容,更新項目類型、索引檔、修改時間、來源網址、最愛圖示、標題、評註,並嘗試複製原網頁的註記(但網頁若變動太大仍可能失敗)。也可以用此方式把書籤重新擷取為網頁。重新擷取成功後,原網頁檔案會移至備份空間(預設位於 .wsb/backup/)(可修改 重新擷取時建立備份 選項取消自動備份)。

合併擷取

如有安裝後端伺服器,可用此功能擷取網頁並合併到之前擷取的項目中。做法是在 擷取分頁為... 對話視窗把 擷取方式 設為 合併擷取,並選擇適當的 目標項目

合併擷取的目標項目必須記錄資源表(index.json),擷取時須把 擷取連結頁面深度 設為 0 以上的數值才會產生資源表。此外,目標項目的資料必須以資料夾形式儲存,封存檔或單一 HTML 網頁是不支援的。

合併擷取除主頁面以外,其餘資源(頁面或檔案)皆會根據資源表的記錄判斷是否已存在,若已存在就不會重新擷取,即使原網站上的版本已更新亦然。一般而言合併擷取不建議在原擷取太久後進行,以免發生不一致(例如新版頁面引用舊版資源)。

如要更新資源檔案,可編輯資源表將其記錄從 files 屬性中刪除,再合併擷取引用該資源的頁面。

合併擷取無法捕捉所有重導向,例如合併擷取頁面 http://example.com/redirected 時,不會改寫已擷取頁面 http://example.com/main 中重導向至該頁面的超連結 http://example.com/link。若要修正此問題,可編輯資源表,於 redirects 屬性加入 ["http://example.com/link", "http://example.com/redirected"],再合併擷取 http://example.com/main(或其他頁面)以觸發重建超連結。

擷取助手

擷取助手可針對特定網站做內容的客製化,到網頁剪貼簿選項勾選 啟用擷取助手 並參考說明填好 JSON 設定即可生效。以下是一些應用方式:

擷取延遲載入的圖片(以 data-* 屬性記錄真實圖片連結者)

[
  {
    "name": "DeferredImageFixer",
    "description": "Save deferred images defined by data-*",
    "commands": [
      ["attr", {"css": "img[data-src]"}, "src", ["get_attr", null, "data-src"]],
      ["attr", {"css": "img[data-srcset]"}, "srcset", ["get_attr", null, "data-srcset"]]
    ]
  }
]

特定網站預設不擷取圖片

[
  {
    "description": "Don't capture images on this site",
    "pattern": "/^https?://example\\.com//i",
    "options": {
      "capture.image": "blank",
      "capture.imageBackground": "blank"
    }
  }
]

自動擷取

到網頁剪貼簿選項勾選 啟用自動擷取 並參考說明填好 JSON 設定即可生效。以下是一些應用方式:

自動擷取一切網頁

[{}]

自動擷取 example.com 網域下的網頁

[{"pattern": "/^https?://example\\.com//"}]

載入任意網頁 10 秒後自動擷取

[{"delay": 10000}]

每 60 秒自動擷取一次

[{"repeat": 60000}]

自動擷取為書籤

[{"taskInfo": {"mode": "bookmark"}}]

把自動擷取的網頁歸檔至 autocaptures 子目錄下

  • 儲存擷取資料至: 設為 剪貼簿資料夾剪貼簿資料夾: 設為 WebScrapBook/data
[{"taskInfo": {"options": {"capture.saveFolder": "WebScrapBook/data/autocaptures"}}}]

把自動擷取的網頁項目存放至某項目下

  • 儲存擷取資料至: 設為 後端伺服器
[{"taskInfo": {"parentId": "20200101020304567"}}]

把自動擷取的網頁項目放在上層項目下的最前面

  • 儲存擷取資料至: 設為 後端伺服器
[{"taskInfo": {"index": 0}}]

為自動擷取的網頁項目在評註欄加上 #autocapture 的 hashtag

  • 儲存擷取資料至: 設為 後端伺服器
[{"eachTaskInfo": {"comment": "#autocapture"}}]
Clone this wiki locally