UNPKG

@naimi/alib

Version:
40 lines (33 loc) 1.31 kB
const fs = require("fs"); const puppeteer = require("puppeteer"); (async () => { const url = process.argv[2]; if (url == undefined) { console.log('Usage: node puppeteer-save-mht.cjs "URL"' + '\ne.g.: node puppeteer-save-mht.cjs "http://google.com"'); return; } const browser = await puppeteer.launch(); //const browser = await puppeteer.launch({args:['--proxy-server=socks5://127.0.0.1:9050']}); // use tor const page = await browser.newPage(); await page.setViewport({ width: 1600, height: 2200, deviceScaleFactor: 1 }); // await page.setRequestInterception(true); // page.on("request", (request) => { // console.log(`Intercepting: ${request.method} ${request.url}`); // request.continue(); // }); await page.goto(url); // await page.waitForNavigation({waitUntil: 'load'}); // await page.waitForNavigation({ waitUntil: "networkidle0" }); await page.waitFor(5000); //! save const title = await page.title(); const fn = "dl-" + title; console.log(title); const session = await page.target().createCDPSession(); await session.send('Page.enable'); const { data } = await session.send('Page.captureSnapshot'); // console.log(data); fs.writeFileSync(fn + '.mhtml', data); browser.close(); })();