什么是Puppeteer Github ?
什么是egg.js?(方便提供对外接口调用,可选)
搭建环境:CenterOS版本
[root@flygoc ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[root@flygoc ~]#
步骤
1. nodejs环境搭建
下载二进制nodejs
wget https://nodejs.org/dist/v12.18.4/node-v12.18.4-linux-x64.tar.gz
解压
tar -zxvf node-v12.18.4-linux-x64.tar.gz
移动到想要放置的地方
mv node-v12.18.4-linux-x64 /usr/local/node-v12.18.4
连接执行文件
ln -s /usr/local/node-v12.18.4/bin/node /usr/local/bin/node
ln -s /usr/local/node-v12.18.4/bin/npm /usr/local/bin/npm
验证nodejs版本
[root@flymegoc ~]# node -v
v12.18.4
[root@flymegoc ~]#
验证npm版本
[root@flymegoc ~]# npm -v
6.14.6
[root@flymegoc ~]#
如果连接错了,进入目录/usr/local/bin删除对应文件后重新连接即可
2. egg.js 项目搭建
根据官方文档快速开始步骤来即可(cli)
npm init egg --type=simple
如果你是root登录,install之前还需执行(否则无法安装Puppeteer)
npm config -g set unsafe-perm
安装依赖
npm install
安装Puppeteer(内置Chromium 版本)
npm i puppeteer
安装Puppeteer 内置Chromium内核依赖
#依赖库
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 -y
#字体
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
中文字体乱码解决
yum install wqy-unibit-fonts.noarch wqy-zenhei-fonts.noarch -y
最后执行(可选)
yum update nss -y
修改egg.js代码home.js
'use strict';
const Controller = require('egg').Controller;
const puppeteer = require('puppeteer');
class HomeController extends Controller {
async index() {
let info = '';
info += 'start';
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']});
const page = await browser.newPage();
await page.goto('https://www.baidu.com');
await page.screenshot({ path: 'example.png' });
info += "-go"
await browser.close();
info += '-end'
const { ctx } = this;
ctx.body = 'hi, egg-' + info;
}
}
module.exports = HomeController;
运行项目
npm run start
访问地址127.0.0.1:7001(按实际地址)
即可在项目根目录看到example.com图片
接下来可以使用更多的puppeteer api玩耍了
参考:
1. centos安装使用puppeteer和headless chrome
2. npm install 报权限错误,permission denied
3. CenterOS下安装NodeJS