dannylin 最近的时间轴更新
dannylin

dannylin

V2EX 第 598505 号会员,加入于 2022-10-22 00:35:40 +08:00
dannylin 最近回复了
@iX8NEGGn 更新一下。目前已初步完成 WebScrapBook/PyWebScrapBook 2.0 測試版,主要支援伺服端搜尋及改進資料傳輸方式,也提供了不少新 API 。有興趣請參見相關討論串: https://github.com/danny0838/PyWebScrapBook/issues/65
@iX8NEGGn 魔改套件是你的權利,不過自製套件在安裝使用上可能會遇到簽署、上架之類的麻煩;而官方套件更新後要同步跟進也會比較麻煩。一般還是會比較推薦兩種模式:(1)推動官方實做;(2)另外做一個自製套件介接。當然,後兩者可能也會需要不少討論和妥協,最後還是看你的意願。如果你願意,或許可以把程式碼也開源出來及到我們的 issue tracker 發議題討論,這樣我們在考慮是否增加新功能或提供更多套件間介接用 API 也會比較有東西可以參考。

關於「相同 URL 若間隔一段時間後允許重複擷取」,目前沒有實做。當初設計自動擷取功能是參考舊版 ScrapBook AutoSave Add-on ,並沒有考慮更多可能的觸發條件,要把這些考慮進去,不做一番魔改看起來不太可能。其實當初我們就很猶豫是否要內建自動擷取,也許最終還是提供更多 API ,然後像舊版 ScrapBook 一樣把自動擷取功能整個獨立成另一個套件比較合適吧。XD
@iX8NEGGn 原來如此,你的想法相當於實做特定連動關係,這個的確是我們不太可能去為個別需求實做的。

如果要用比較符合目前框架下的做法,你可以考慮這樣做:
1. 設定自動擷取的頁面統一儲存到特定剪貼簿 X 。
2. 把「一鍵收藏到書籤」改成「一鍵擷取為 WebScrapBook 書籤」,假設擷取到特定剪貼簿 Y 。
3. 寫一個 cron tab 腳本,以一定頻率(例如每天)執行:
(1) 鎖定所有剪貼簿
(2) 檢查 X 內的每筆資料,若建立時間超過 n 天,且在 X 以外的剪貼簿中沒有相同來源網址的項目,就刪除。
(3) 解鎖

cron tab 腳本建議用 Python 寫,可以一定程度上調用 PyWSB 現有的 API 。
至於 @iX8NEGGn 提到的幾點:


1. 關於全文檢索:

如前所述,全文檢索本來就有提供,為了支援靜態頁面等相容性考量,目前是做成客戶端檢索,也就是要先下載所有全文快取再開始檢索。

至於資料量很大的情況,要看網路和機器。如果後端架在本地,一般不會有太太問題;如果架在遠端,以目前的網路條件,下載數十 MB 的全文快取也不是太大問題。

作為參考,我個人的一個主要剪貼簿有約 27 年的資料,總計約 3 千個項目,10 萬個檔案,2.0GB ,全文快取 54MB 。伺服器架在遠端的情況下,電腦檢索並不會有太大的延遲( nginx 傳送全文快取資料會自動壓縮,大概只剩 26MB 左右),手機會稍微慢些,不過問題應該不在網速,而在手機處理器的性能。

如果擔心下載全文快取吃光流量,WSB 套件有提供限制快取大小的功能,行動端可以拒絕載入太大的全文快取(仍可以用標題、時間等其他條件檢索)。

PyWSB 支援多剪貼簿,每個剪貼簿都有獨立的快取。可以把常用資料集中在幾本剪貼簿,不常用的放到其他幾本,平時只在前者檢索,就可以極小化載入不必要的快取的效能問題。

未來可能會考慮實做伺服端的全文檢索,這樣客戶端就不必下載整個全文快取了。

如果還有餘裕,或許可能會實做支援 js 以外的全文索引格式,以應付不同需求。


2. 關於自動擷取與書籤整合:

我個人很少用自動擷取,因為無差別擷取瀏覽的頁面作用不大,絕大多數資料都不會用到,徒然影響效能和空間;而 Web 應用如 SNS ,也很難用自動擷取抓到想要的內容。但如果要用,可以設定擷取到獨立的剪貼簿,和常用資料分開,把干擾減到最小。

與書籤整合也是。就我個人的使用方式而言,書籤通常是用於記錄某些常去的「網站」,而剪貼簿則是記錄「網頁」,兩者本質上就不同,也就不會發生既要加書籤又擷取的情況。而對於想暫時記著的「網頁」,WSB 也有擷取成書籤項目的功能。

我個人無法理解為什麼要既加書籤又自動擷取,還要書籤刪除後同步刪除擷取?那和直接擷取並用特定剪貼簿/資料夾分類有何區別?

無法理解的需求,我大概也不會不會考慮實做。如果真的想做,可以考慮寫成另一個瀏覽器套件,以便提供瀏覽器書籤整合,也可以透過 external message 接入 WSB 套件和 PyWSB 做到自動擷取。

至於像自動刪除過時資料之類的功能,可以另寫套件接入 PyWSB 處理。或者也可以考慮寫成 cron job 。

未來 PyWSB 可能會實做剪貼簿 CRUD 的 Python 模組、命令列、及 web API 接口。到時寫第三方工具應該會更方便。


說是這樣說,但現在還有太多工作,實做那些可能是很久以後了。如有高手感興趣,倒是歡迎加入開發行列。😊
我是網頁剪貼簿( WebScrapBook ,WSB )的開發者,最近碰巧看到這個帖,也說點想法。

樓主提到的功能 WebScrapBook + PyWebScrapBook 應該足以解決,因為二者本來就是集擷取、管理、加註、檢索、跨裝置存取的方案:
- 網頁擷取:有
- 儲存到遠端伺服器:有
- 多點存取:可以。能安裝 WSB 的瀏覽器都可以存取;不能安裝的也可以透過靜態索引頁面存取,或透過動態 Web 界面做有限度的編輯。
- 全文檢索:可以。而且支援的檢索條件相當豐富,比如在任意一或多本剪貼簿中檢索、限定在任意多個節點下檢索、RegExp 匹配檢索等等。

如果手上都是 SingleFile 擷取的網頁,PyWSB 也提供命令列工具匯入到 WSB 。(參見:wsb convert file2wsb -h )

順便說下儲存格式,在 WSB 的文件就有[分析過]( https://github.com/danny0838/webscrapbook/wiki/FAQ-(zh_TW)#%E5%A6%82%E4%BD%95%E9%81%B8%E6%93%87%E6%93%B7%E5%8F%96%E7%B6%B2%E9%A0%81%E7%9A%84%E5%84%B2%E5%AD%98%E6%A0%BC%E5%BC%8F)。我個人使用上幾乎都是擷取為資料夾包 HTML+資源檔,只在極少數情況使用單一 HTML 或 MAFF 等壓縮格式,主要理由是:
1. 資料放在伺服器上透過瀏覽器瀏覽時,這種形式效能最好。加註、編輯、回存、或全文檢索時也是如此。(比如全文索引器只要爬 HTML 檔就好,單一 HTML 檔案卻得連無關的肥大 base64 資料一起爬過)
2. 最容易與版控系統整合。我可以不定時把資料丟進 Git 版控,隨時比對差異或復原毀損資料。單一 HTML 內嵌太多可能是重複的 base64 ,會讓資料庫變肥,也不利差異比對。
3. 單一 HTML 先天就無法記錄多個互相連結的網頁,所以像深層擷取、合併擷取都是只有 WSB 才支援的功能。
2022-10-23 01:05:26 +08:00
回复了 Melville 创建的主题 问与答 求教如何屏蔽百度百家号
終結內容農場可以在任何網站(包括百度、Google 、Bing )標示相關連結,看到標示不要點就好了。
:)
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5805 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 03:30 · PVG 11:30 · LAX 19:30 · JFK 22:30
Developed with CodeLauncher
♥ Do have faith in what you're doing.