可以使用npm i puppeteer或安装阿里云的cnpm来安装,有时候安装会发生错误,这时就要找到node_modules文件夹删除其中的puppeteer文件夹,再重新运行安装命令
也可以使用yarn add puppeteer来安装
在安装过程中会自动下载chrome无头浏览器,这就比selenium要方便
举一个访问淘宝的例子
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless : false,
defaultViewport:{ width: 1920, height: 1080 }
});
const page = await browser.newPage();
const page2 = await browser.newPage();
await page.goto('https://www.taobao.com/');
await page2.goto('https://www.baidu.com/');
await page.screenshot({path: 'taobao.png'});
await page.on('console', msg => {
for (let i = 0; i < msg.args().length; ++i)
console.log(`${i}: ${msg.args()[i]}`); // 译者注:这句话的效果是打印到你的代码的控制台
});
page.evaluate(() => console.log('hello', 5, {foo: 'bar'}));
})();
Puppeteer 初始化的屏幕大小默认为 800px x 600px。这个尺寸也可以通过 Page.setViewport() 设置
slowMo 将 Puppeteer 操作减少指定的毫秒数。这样你就可以看清发生了什么,这很有用。
browser.disconnect() 断开 Puppeteer 和浏览器的连接,但 Chromium 进程仍然在运行。在调用 disconnect 之后,Browser 对象本身被认为是处理过的并不能再被使用。用于创建新页面后,将权限交于使用人