zzerd

search

debian 安装puppeteer相关问题

1. 安装node

2.安装puppeteer

  • 新建一个用户用于执行 node : useradd puppeteer -d /home/puppeteer
  • 这里注意不要用root用户执行,不然不会自动下载chromium,后面运行 node 的时候也会因为沙箱安全问题出错。

    mkdir test && cd test && npm i puppeteer

3. 安装chromium 依赖

因为 puppeteer 只会下载 chromium 执行文件并不会为系统安装依赖。所以可以先安装依赖

  • 安装社区 chromium 会自动安装依赖:apt-get update && apt-get install chromium 安装不成功!

    • 这是安装程序时的一个安全相关策略 ,需要先设置一下 apt-key。

      wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
    • 然后设置 Chrome 的仓库:

      sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' 
    • 再次安装: apt-get install chromium
  • 手动安装依赖:

    • 方法一: apt-cache depends chromium |grep Depends |cut -c 13- | xargs apt insall
    • 方法二: apt install libnss3 libatk1.0-0 libatk-bridge2.0-0 libcups2 libgbm1 libasound2 libpangocairo-1.0-0 libxss1 libgtk-3-0

      3.测试

  • 新建测试文件:touch test.js

    const puppeteer = require('puppeteer');
    (async () => {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://www.baidu.com');
    await page.screenshot({path: 'baidu.png'});
    await browser.close();
    })();
  • 执行 node test.js

    • 如果执行出错可用 ldd 看看 node_module 里的chrome差什么依赖
    ldd node_modules/puppeteer/.local-chromium/linux-856583/chrome-linux/chrome | grep no

4. 安装中文字体

  • scp baidu.png 到本地你会发现中文变成了方块字符,解决办法就是在debian上安装中文字体

    apt-get install language-pack-zh*
    apt-get install chinese*

Copyright©2014 zzerd.com Rights Reserved 知止而定版权所有

感谢所有关心和支持过 zzerd.com的朋友们

粤ICP备15003502号-1