从page.evaluate输出控制台日志到本地终端?

时间:2018-11-03 22:10:00

标签: web-scraping puppeteer google-chrome-headless

如何从page.evaluate输出控制台日志到本地终端?

await page.evaluate(() => {
    console.log("test"); // <-- I want this message to show in my local terminal

我正在MacOS计算机上本地运行代码。

我在github问题中发现的以下解决方案无效:

解决方案1 ​​

const browser = await puppeteer.launch({
    'args': ['--disable-dev-shm-usage', '--disable-software-rasterizer'],
    dumpio: true
});

// output:
// ERROR:gpu_process_transport_factory.cc(967)] Lost UI shared context.

解决方案2

const browser = await puppeteer.launch({
    'args': ['--disable-dev-shm-usage', '--disable-software-rasterizer']
});

page.on('console', msg => {
    for (let i = 0; i < msg.args.length; ++i)
        console.log(`${i}: ${msg.args[i]}`);
});

// output:
// nothing

1 个答案:

答案 0 :(得分:0)

我只是从Puppeteer开始的。无法马上解决,但是尝试了几件事后,这对我有用。

const names = await page.evaluate(() => {
        let names = document.querySelectorAll("#lnkBEName");
        console.log(names);
        return names;
    })
    console.log(names);

然后功能块内的console.log不起作用。但是,该块外部的最后一行有效。希望这对某人有帮助。