无法使用Node&Chrome无头浏览器从网页读取数据

时间:2019-06-06 10:31:04

标签: node.js google-chrome-headless headless-browser

我正在使用chrome-remote-interface构建一个简单的节点脚本,该脚本应获取https://github.com的屏幕截图并将其下载到我的目录中:

const CDP = require('chrome-remote-interface');
const fs = require('fs');

CDP({
    host: 'localhost',
    port: 9222,
}, async client => {

    const {
        page
    } = client;
    try {
        await page.enable();

        let {
            data
        } = await Page.captureScreenshot({
            format: 'png',
        });
        fs.writeFile('screenshot.png', data, 'base64', e => console.log(e));
        await client.close();
    } catch (error) {
        console.log(error);
    }

});

我执行时:

chrome --headless --disable-gpu --remote-debugging-port=9222 https://www.github.com

并运行节点脚本:

PS C:\playground\src> node .\program.js

我希望它在默认端口9222上打开无头浏览器,并将屏幕截图下载到该目录中。 但是,我在控制台中收到以下错误:

TypeError: Cannot read property 'enable' of undefined
    at EventEmitter.CDP (C:\playground\src\program.js:11:16)
    at Object.onceWrapper (events.js:273:13)
    at EventEmitter.emit (events.js:182:13)
    at process.nextTick (C:\playground\node_modules\chrome-remote-interface\lib\chrome.js:150:32)
    at process._tickCallback (internal/process/next_tick.js:61:11)

页面为何获得undefined


编辑

屏幕截图已下载到目录树中,但没有图像,而是undefined

enter image description here

谢谢!

0 个答案:

没有答案