Скриншот нескольких сайтов с помощью node.js / webshot - Производительность выдает / Нет ответа - PullRequest
0 голосов
/ 05 ноября 2019

Отлично работает только с несколькими URL-адресами, но чем больше я пытаюсь сканировать, тем больше времени занимает процесс для каждого URL-адреса. Файл содержит около 145 URL. Если я попытаюсь просканировать все из них, программа просто перестанет отвечать на 135 скриншотов сайтов. Я предполагаю, что это связано с асинхронной природой Node, но я понятия не имею, как это исправить.

Вот что я получил:


const fs = require('fs');
const webshot = require('webshot');
let jsonData = fs.readFileSync('./data.json');
let jsonDataParsed = JSON.parse(jsonData);
let number = 1;


let options = {
    quality: 25,
}

jsonDataParsed.forEach((element) => {
    let url = element.link;
    let title = element.veranstalter;
    let randomNumber =  (Math.round(Math.random() * 1000000)).toString();
    let picName = './webshotpics/'+ title + '-'+ randomNumber+'.jpg'; 



   webshot(url, picName, options, function(err) {
        console.log('Tried Webshot ' + number);   
        console.log(picName);
        console.log(number);
        console.log(url);

        number++;

        if (err) {
            console.log('Error at number ' + number );
            console.log('Error name: ' + picName );
            console.log('Error link: ' + url );


        }


    });


});

...