Added Little Caprice Dreams scraped (WIP).
This commit is contained in:
@@ -9,6 +9,7 @@ const Bottleneck = require('bottleneck');
|
||||
const { JSDOM } = require('jsdom');
|
||||
|
||||
const logger = require('../logger')(__filename);
|
||||
const virtualConsole = require('./virtual-console')(__filename);
|
||||
const argv = require('../argv');
|
||||
|
||||
const pipeline = util.promisify(stream.pipeline);
|
||||
@@ -105,7 +106,7 @@ async function request(method = 'get', url, body, requestOptions = {}, limiter)
|
||||
|
||||
if (Buffer.isBuffer(res.body)) {
|
||||
const html = res.body.toString();
|
||||
const window = new JSDOM(html).window;
|
||||
const window = new JSDOM(html, { virtualConsole }).window;
|
||||
|
||||
return {
|
||||
...res,
|
||||
|
||||
@@ -3,8 +3,9 @@
|
||||
const { JSDOM } = require('jsdom');
|
||||
const moment = require('moment');
|
||||
const http = require('./http');
|
||||
const virtualConsole = require('./virtual-console')(__filename);
|
||||
|
||||
const { window: globalWindow } = new JSDOM('');
|
||||
const { window: globalWindow } = new JSDOM('', { virtualConsole });
|
||||
|
||||
function trim(str) {
|
||||
if (typeof str !== 'string') {
|
||||
@@ -440,7 +441,7 @@ function initAll(context, selector, window) {
|
||||
}
|
||||
|
||||
function extract(htmlValue, selector) {
|
||||
const { window } = new JSDOM(htmlValue);
|
||||
const { window } = new JSDOM(htmlValue, { virtualConsole });
|
||||
|
||||
if (selector) {
|
||||
return init(window.document.querySelector(selector), window);
|
||||
@@ -450,7 +451,7 @@ function extract(htmlValue, selector) {
|
||||
}
|
||||
|
||||
function extractAll(htmlValue, selector) {
|
||||
const { window } = new JSDOM(htmlValue);
|
||||
const { window } = new JSDOM(htmlValue, { virtualConsole });
|
||||
|
||||
return initAll(window.document, selector, window);
|
||||
}
|
||||
|
||||
18
src/utils/virtual-console.js
Normal file
18
src/utils/virtual-console.js
Normal file
@@ -0,0 +1,18 @@
|
||||
'use strict';
|
||||
|
||||
const { VirtualConsole } = require('jsdom');
|
||||
const path = require('path');
|
||||
|
||||
const logger = require('../logger')(__filename);
|
||||
|
||||
function getVirtualConsole(filepath) {
|
||||
const virtualConsole = new VirtualConsole();
|
||||
const context = path.basename(filepath);
|
||||
|
||||
virtualConsole.on('error', message => logger.warn(`Error from JSDOM in ${context}: ${message}`));
|
||||
virtualConsole.on('jsdomError', message => logger.warn(`Error from JSDOM in ${context}: ${message}`));
|
||||
|
||||
return virtualConsole;
|
||||
}
|
||||
|
||||
module.exports = getVirtualConsole;
|
||||
Reference in New Issue
Block a user