見てるページを全部保存するという行ない をもうずっとしていて、以下のような user.js でページを全部保存してます。
// ==UserScript==
// @name 見たサイト全部保存
// @namespace http://tampermonkey.net/
// @version 0.1
// @author You
// @match http://*/*
// @match https://*/*
// @grant GM_xmlhttpRequest
// @noframes
// ==/UserScript==
if(!!document.querySelector('title')){
const title = document.querySelector("title").textContent;
const url = location.href;
GM_xmlhttpRequest({method: 'POST', url: '秘密の API', data: JSON.stringify({title: title, url: url})});
}
で秘密の API で受け取ったものを、あとから非同期処理で puppeteer でキャプチャと PDF を取得しています。
const puppeteer = require('puppeteer');
(async () => {
try{
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(process.argv[2]);
await page.screenshot({path: 'data/'+process.argv[3]+'.thumbnail.png'});
await page.screenshot({path: 'data/'+process.argv[3]+'.png', fullPage: true});
await page.pdf({path: 'data/'+process.argv[3]+'.pdf'});
await browser.close();
} catch(e) { console.log(e) ; proccess.exit()}
})();
でまあいろいろあって Web からこんな感じでみられるようにしてます。
pupeteer で取得した PDF は Google Drive に Google Docs ドキュメントとしてアップロードもしてます。こうすると Google Drive を無料で使える全文検索エンジンとして利用することができ、最強ということになります。
Web 側の UI に Google Drive で検索してきて、それと関連するキャプチャとかを見られるような UI とかをつけてあります。
見たページをこういうかたちを全部保存しておくと、サイトが潰れたりしても大丈夫ですし、「どっかで見たと思うんだけどどこにあるか思い出せない」みたいな情報も「自分が見た範囲内から検索」ができるとあっさり見つかったりします。