Closing JSDOM window after deep scrapes in an attempt to save memory.

This commit is contained in:
DebaucheryLibrarian 2021-12-18 23:22:35 +01:00
parent de7a8c756a
commit 8e4be06675
1 changed files with 3 additions and 4 deletions

View File

@ -10,7 +10,7 @@ const tunnel = require('tunnel');
const Bottleneck = require('bottleneck'); const Bottleneck = require('bottleneck');
const { JSDOM, toughCookie } = require('jsdom'); const { JSDOM, toughCookie } = require('jsdom');
// const windows = require('./http-windows'); const windows = require('./http-windows');
const logger = require('../logger')(__filename); const logger = require('../logger')(__filename);
const virtualConsole = require('./virtual-console')(__filename); const virtualConsole = require('./virtual-console')(__filename);
@ -119,11 +119,10 @@ async function finalizeResult(res, options) {
const window = options?.parse ? new JSDOM(html, { virtualConsole, ...options.extract }).window : null; const window = options?.parse ? new JSDOM(html, { virtualConsole, ...options.extract }).window : null;
const pathname = new URL(res.request.url).pathname.replace(/\//g, '_'); const pathname = new URL(res.request.url).pathname.replace(/\//g, '_');
/* unable to clear from update scrapes, nor any way to distinguish deep scrapes // allow window.close to be called after scraping is done, only for deep scrapes where the URL is known outside the scraper
if (window) { if (window && /fetchScene|fetchMovie/.test(new Error().stack)) {
windows.set(pathname, window); windows.set(pathname, window);
} }
*/
if (argv.saveHtml) { if (argv.saveHtml) {
await fs.writeFile(`./html/${pathname}.html`, html); await fs.writeFile(`./html/${pathname}.html`, html);