木偶群集关闭浏览器本身

时间:2020-10-30 13:47:42

标签: javascript node.js puppeteer puppeteer-cluster

我使用puppeteer-cluster + node js。我有一些剧本。 我是新手

该脚本运行到一半,然后结束,不再执行。我一直在寻找解决方案已有一个星期,我不知道这是怎么回事。帮帮我,请在这里输入代码

const { Cluster } = require('puppeteer-cluster-delay');

(async () => {
    const cluster = await Cluster.launch({
        concurrency: Cluster.CONCURRENCY_CONTEXT,
        maxConcurrency: 2,
        puppeteerOptions: {headless: false,
        },
    });

    await cluster.task(async ({ page, data: url }) => {
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('1');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('2');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('3');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('4');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('5');
        await page.goto('http://www.nike.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('6');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('7');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('8');
        await page.goto('http://www.google.com/');
        await new Promise(resolve => {
            setTimeout(() => { // user is waiting for an asynchronous event
                try {
                    resolve();
                } catch (err) {
                    // handle error
                }
            }, 5000);
        });
        await console.log('end');
    });

    await cluster.queue();
    await cluster.queue();
    // many more pages

    await cluster.idle();
    await cluster.close();
})();

脚本到达第5次迭代并结束((

1 个答案:

答案 0 :(得分:0)

我们需要在启动操纵up中使用超时参数。 将超时= 0设置为关闭