puppeteer在mac和ubuntu上的安装使用

puppeteer已经出来很长一段时间了,这两天闲着没事玩了下爬虫,整体体验不错。这里主要是介绍安装方法,因为遇到了一些坑

mac

方法一

在安装puppeteer包时,由于其依赖了chromium,因此包的体积很大,下载过程较慢。可以通过下面的命令修改包的源地址,再安装时就会快很多

npm config set puppeteer_download_host=https://npm.taobao.org/mirrors

也可以在用户文件夹下找到.npmrc文件,添加uppeteer_download_host=https://npm.taobao.org/mirrors,然后再执行npm install

方法二

上述方法的问题是,每次新建项目时都要安装下puppeteer,很占硬盘空间。解决方法是从chromium官网先下载一个安装包,解压后把它放到一个目录下,然后设置executablePath选项,指向chromium

下面是一个简单示例

# 该操作不下载chromium,只下载puppeteer依赖的一些node包
npm i --save puppeteer --ignore-scripts
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
        // 指定chromium地址
        executablePath: '/Users/wmui/Documents/demo/Chromium.app/Contents/MacOS/Chromium',
        // 打开开发者工具
        devtools: true,
        // 打开浏览器
        headless: false,
        args: ['--disable-dev-shm-usage']
    });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({path: 'example.png'});

  await browser.close();
})();

ubuntu

在服务器端安装有些麻烦,官方给出了安装时的注意注意事项,移步至此。我用的服务器是Ubuntu,下面是安装步骤

首先要安装下面这些依赖包

sudo apt-get install gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget

然后配置args选项为黑盒模式

args: ['--disable-dev-shm-usage', '--no-sandbox',  '--disable-setuid-sandbox']

完成上面的操作就可以正常启动puppeteer了

学习资料

官方文档

从零开始开发一个Node交互式命令行应用

爬虫利器 Puppeteer 实战

结语

本来是爬豆瓣图书练手的,无奈爬了一万本IP被封了,好在过了一天又解封了。puppeteer是支持设置代理的,通过配置args: ['--proxy-server=http://127.0.0.1:3000'],可以以代理身份发送请求,我试了下免费的代理都很慢,不过既然是为了玩,慢也无所谓了。后面如果有时间,会分享一篇用puppeteer爬豆瓣的文章。

以上,感谢阅读!

posted @ 2019-05-09 10:53:16 浏览(459) 笔记

avatar