Revision history and IPFS entry, back to latest
catding
IPFS What is this

Content Hash

關於「內容保護」的做法,有些話想說

catding
·
·
這篇說話比較直接,但做事真的需要有效率

手動一篇篇複製貼上真的非常沒有效率,如果單以保存為目標而言(先不管策展之類的),應該盡量採用更有效率的方式,而不只是「有心做」。

說白些,對於文章密集的站點(例如FB或新聞網站,而非零散的個人網站),與其手動作業剪貼,還不如拿時間去打工,然後用賺來的錢僱個三流工程師用/寫簡單工具批量保存,還比較有效益。

有哪些可考慮的方案?

將網址提交到archive.org等網站

  • 方式:可手動提交網址、用瀏覽器擴充一鍵提交、使用archivenow等指令列工具批量提交
  • 完整度:幾乎與原本頁面相同
  • 優點:幾乎適用所有網站、無需自行寫程式、維護伺服器
  • 缺點:提交有頻率限制、依賴單一站點的穩定性與可訪問性(容易會被封鎖)

自行保存WARC檔案

  • 方式:使用archivenow等工具生成檔案
  • 完整度:幾乎與原本頁面相同
  • 優點:幾乎適用所有網站、無需自行寫程式、無需依賴單一站點、檔案可透過IPFS分散式儲存
  • 缺點:檔案較大、抓取速度較慢、需架設IPWB等服務以供一般用戶瀏覽

客製化爬蟲生成HTML

  • 方式:寫爬蟲程式,想抓哪些內容自行決定(純文字、含圖片……)
  • 完整度:視爬蟲實作而定
  • 優點:速度較快、檔案較小、檔案可透過IPFS分散式儲存、一般用戶可直接開啟
  • 缺點:頁面完整度較低、有寫爬蟲的成本(且難以跨網站通用)

這次備份我選擇的方案

以這次備份香港蘋果的文章為例,首先排除掉第一個方案,因為文章總量過大(>100萬),且不想過於依賴archive.org等組織/站點。

而WARC在用戶體驗方面,應該是比較理想的方案。但是一來爬取速度較低,二來檔案佔用空間較大(單一頁面約5MB,多圖文章會更高),故也先跳過。

最後採用的方案是自行編寫純文字的爬蟲,雖然完整度較低,但是速度相當快(16線程約12頁面/秒),空間需求也不高(基本上一天份<3BM),而且一般用戶也能輕鬆下載與瀏覽。

一共花了多少時間?(2016-01-01~2021-06-16,其他年份還在跑)

注意:我不是專門做爬蟲的,IPFS也不熟悉,效率已不算高
  • 寫程式(初稿+調整細節+DEBUG):不超過3小時
  • 運行爬蟲:約1天(一開始線程沒用到16個,且含中途調整花費的重跑時間)
  • 建置IPFS節點:10分鐘
  • 將檔案加入IPFS節點PIN住:數小時

其他

  • 感謝@slash介紹IPWB等工具
  • 2002-01-01~2015-12-31的正在跑,之後會再發佈
CC BY-NC-ND 2.0