详解Puppeteer 入门教程

2020-06-17 06:45:06易采站长站整理
参数名称参数类型参数说明ignoreHTTPSErrorsboolean在请求的过程中是否忽略 Https 报错信息,默认为 falseheadlessboolean是否以”无头”的模式运行 chrome, 也就是不显示 UI, 默认为 trueexecutablePathstring可执行文件的路劲,Puppeteer 默认是使用它自带的 chrome webdriver, 如果你想指定一个自己的 webdriver 路径,可以通过这个参数设置slowMonumber使 Puppeteer 操作减速,单位是毫秒。如果你想看看 Puppeteer 的整个工作过程,这个参数将非常有用。argsArray(String)传递给 chrome 实例的其他参数,比如你可以使用”–ash-host-window-bounds=1024×768” 来设置浏览器窗口大小。更多参数参数列表可以参考这里handleSIGINTboolean是否允许通过进程信号控制 chrome 进程,也就是说是否可以使用 CTRL+C 关闭并退出浏览器.timeoutnumber等待 Chrome 实例启动的最长时间。默认为30000(30秒)。如果传入 0 的话则不限制时间dumpioboolean是否将浏览器进程stdout和stderr导入到process.stdout和process.stderr中。默认为false。userDataDirstring设置用户数据目录,默认linux 是在 ~/.config 目录,window 默认在 C:Users{USER}AppDataLocalGoogleChromeUser Data, 其中 {USER} 代表当前登录的用户名envObject指定对Chromium可见的环境变量。默认为process.env。devtoolsboolean是否为每个选项卡自动打开DevTools面板, 这个选项只有当 headless 设置为 false 的时候有效

3.2 Browser 对象

当 Puppeteer 连接到一个 Chrome 实例的时候就会创建一个 Browser 对象,有以下两种方式:

Puppeteer.launch 和 Puppeteer.connect.

下面这个 DEMO 实现断开连接之后重新连接浏览器实例


const puppeteer = require('puppeteer');

puppeteer.launch().then(async browser => {
// 保存 Endpoint,这样就可以重新连接 Chromium
const browserWSEndpoint = browser.wsEndpoint();
// 从Chromium 断开连接
browser.disconnect();

// 使用endpoint 重新和 Chromiunm 建立连接
const browser2 = await puppeteer.connect({browserWSEndpoint});
// Close Chromium
await browser2.close();
});

Browser 对象 API

方法名称返回值说明
browser.close()Promise关闭浏览器
browser.disconnect()