puppeteer是谷歌官方推出的基于Chrome的无头浏览器(headless browser),所谓的无头浏览器就是不提供UI界面的浏览器,保留了整个浏览器的所有的能力,只是没有UI界面,提供了一套完整的Node API。通过这些API可以方便的控制整个浏览器的各种操作,可以开启一个page,可以访问web页面,操作dom,执行js等等,只要是客户端的Chrome能做的,它都能做。

    下面记录在centos 7.2版本中部署使用puppeteer遇到的一些问题和解决方法

    puppeteer版本:
    centos 版本:7.2
    node版本:11.12.0

    centos 7.2是基于centos7.2的基础开发,主要的问题是一些依赖确实,版本不对的问题。

    首先安装必要的依赖,更新系统依赖,安装所需字体:

    yum update
    yum groupinstall Fonts
    yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11 fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc
    yum install ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y

    接着如果在使用puppeteer的过程,会发现,提示 必须使用 nss 3..22 版本以上。但是centos7.2 镜像能够拉取到的最高版本是 3.19的。所以我们需要手动安装依赖

    wget https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/nspr-4.19.0-1.el6.x86_64.rpm
    wget https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/nss-util-3.36.0-1.el6.x86_64.rpm
    wget https://rpmfind.net/linux/centos/6.10/updates/x86_64/Packages/nss-3.36.0-9.el6_10.x86_64.rpm

    rpm -ivh —replacefiles nspr-4.19.0-1.el6.x86_64.rpm
    rpm -ivh —replacefiles nss-util-3.36.0-1.el6.x86_64.rpm
    rpm -ivh —replacefiles nss-3.36.0-9.el6_10.x86_64.rpm