前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >puppeteer使用指南-安装

puppeteer使用指南-安装

原创
作者头像
挥刀北上
修改2021-02-01 14:20:23
修改2021-02-01 14:20:23
4.3K00
代码可运行
举报
文章被收录于专栏:Node.js开发Node.js开发
运行总次数:0
代码可运行

poppeteer是控制Chromium浏览器的一个js库,Chromium是谷歌开发的一款开源浏览器,与Chrome不同Chrome是不开源的,Chromium提供了很过供开发者使用的接口,开发者可以根据自己的需要通过相应的语言去驱动Chromium完成自己的项目,而puppeteer是用js语言开发的驱动Chromium的库,其他的语言如python使用python版本的puppeteer来驱动Chromium。

首先第一步我们来安装puppeteer这个库,我们可以直接使用npm、cnpm、yarn这些工具直接来安装,如果我们直接安装puppeteer的话,会默认在项目中下载Chromium这个浏览器,如果你的安装工具使用的是国外的源,那么可能会下载失败,那该咋办呢?

第一种方案,更改npm源,改为淘宝的源。

第二种方案,在puppeteer1.7版本之后,puppeteer团队开发了一个精简版的puppeteer,名为puppeteer-core,这个库在用npm安装时不会下载Chromium,如果安装这个库的话需要手动下载Chromium,此时需要注意,下载和puppeteer-core匹配的版本的Chromium,可以查看puppeteer-core的package.json文件查看其对应的Chromium。如图:

截图
截图

可以看到devtools-protocol的版本是818844版本的,那么去哪里下载呢?可以去国内淘宝的源,网址为:

https://npm.taobao.org/mirrors/chromium-browser-snapshots/Mac/

下载完成后,记录去存放地址,可以将其放在项目目录下。然后配置项目时,使用此路径,代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
const puppeteer = require('puppeteer-core');
(async () => {
    let chromiumpath = '/Applications/Chromium.app/Contents/MacOS/Chromium'
    const browser = await puppeteer.launch({ executablePath: chromiumpath, headless: false })
    const page = await browser.newPage();
    await page.goto('https://www.baidu.com/');
})();

以上是将Chromium拷贝到了应用文件目录下,也可以直接使用下载目录:

代码语言:javascript
代码运行次数:0
运行
复制
const puppeteer = require('puppeteer-core');
const path = require('path');
(async () => {
    let p = path.resolve(__dirname,'../../../Downloads/chrome-mac/Chromium.app/Contents/MacOS/Chromium');
    // console.log(p)
    // return 
    let chromiumpath = '/Applications/Chromium.app/Contents/MacOS/Chromium'
    const browser = await puppeteer.launch({ executablePath: p, headless: false })
    const page = await browser.newPage();
    await page.goto('https://www.baidu.com/');
})();

此时需要借助path.resolve()函数来拼接路径。

以上是使用puppeteer来驱动Chromium,也可以使用puppeteer来驱动Chrome,看代码:

代码语言:javascript
代码运行次数:0
运行
复制

const puppeteer = require('puppeteer-core');
(async () => {
    let chrompath = '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
    const browser = await puppeteer.launch({ executablePath: chrompath, headless: false })
    const page = await browser.newPage();
    await page.goto('https://www.baidu.com/');
})();

此时需要注意的是Chrome的版本。

以上便是安装puppeteer的方法和安装过程中碰到的一些问题的解决方案,希望对你有所帮助。

参考https://zhuanlan.zhihu.com/p/138138108

https://www.jianshu.com/p/56babda610f9

https://blog.csdn.net/qq_33833327/article/details/78182189

https://www.npmjs.com/package/puppeteer-core

https://www.npmjs.com/package/puppeteer

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档