1)安装puppeteer

官方文档:https://zhaoqize.github.io/puppeteer-api-zh_CN/#/
知乎教程:https://zhuanlan.zhihu.com/p/66296309

# 1.仅安装核心,然后用chrome运行,不下载Chromium 【建议方式】
cnpm i puppeteer-core
# or "yarn add puppeteer-core"

# 2.下载完整版本,含chromium,速度慢
npm i puppeteer
# or "yarn add puppeteer"

2)连接现有谷歌

准备:先复制一个谷歌快捷方式,右键——属性——在目标的chrome.exe 后加上 --remote-debugging-port=9222
再点开此快捷方式运行谷歌浏览器
最后再运行如下脚本 node demo.js

是否配置成功可在浏览器运行成功后在地址栏访问:http://127.0.0.1:9222/json/version
可看到:

{
   "Browser": "Chrome/89.0.4389.114",
   "Protocol-Version": "1.3",
   "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36",
   "V8-Version": "8.9.255.24",
   "WebKit-Version": "537.36 (@1ea76e193b4fadb723bfea2a19a66c93a1bc0ca6)",
   "webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/f8782d9c-69c9-4fd1-8691-0dc731617c92"
}

连接现有浏览器实例:connect.js

const puppeteer = require('puppeteer-core');
let request = require('request-promise-native');


/*使用 puppeteer.connect 连接一个已经存在的 Chrome 实例
 先复制一个谷歌快捷方式,右键——属性——目标的chrome.exe 后加上 --remote-debugging-port=9222
 再点开此快捷方式运行谷歌浏览器
*/

(async () => {
    //通过 9222 端口的 http 接口获取对应的 websocketUrl
    let version = await request({
        uri:  "http://127.0.0.1:9222/json/version",
        json: true
    });
    //直接连接已经存在的 Chrome
    let browser = await puppeteer.connect({
        browserWSEndpoint: version.webSocketDebuggerUrl
    });
    const page = await browser.newPage(); //初始化页面
    await page.goto('https://www.baidu.com'); //打开网址
    await page.screenshot({path: 'baidu.png'}); //截图
    // await page.close();
    // await browser.disconnect();
})();

3)新建一个空谷歌窗口运行

//使用 puppeteer.launch 启动 Chrome
(async () => {
    const browser = await puppeteer.launch({
        headless: false,   //有浏览器界面启动
        executablePath: 'C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe',
        slowMo: 100,       //放慢浏览器执行速度,方便测试观察
        args: [            //启动 Chrome 的参数,详见上文中的介绍
            '–no-sandbox',
            '--window-size=1280,960'
        ],
    });
    const page = await browser.newPage();
    await page.goto('https://www.baidu.com');
    await page.close();
    await browser.close();
})();
Logo

一站式 AI 云服务平台

更多推荐