1、安装nodejs
由于puppeteer目前只支持在node环境中运行,所以需要提前安装nodejs:
centos下安装nodejs
2、安装chromium
手动去这个网站下载 https://npm.taobao.org/mirrors/chromium-browser-snapshots/:
切换到data目录
cd /data
1
比如下载609904版本的谷歌浏览器
wget https://npm.taobao.org/mirrors/chromium-browser-snapshots/Linux_x64/609904/chrome-linux.zip
1
解压进入目录,查看谷歌浏览器的依赖是否安装完全
ldd chrome
1
如果依赖没有安装完全,则执行以下命令安装依赖,完成以后用ldd命令再次确认:
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
1
修改puppeter.js的 executablePath: ‘/data/chrome-linux/chrome’
3、安装puppeteer
切换到node的安装目录
cd /data/node-v10.15.0-linux-x64/
1
初始化npm,一直回车就行了,会生成一个package.json文件
npm init
1
然后安装puppeteer
npm i puppeteer --ignore-scripts
1
修改puppeteer.js的const puppeteer = require(’/data/node-v10.15.0-linux-x64/node_modules/puppeteer’);
4、安装中文字体
使用以下命令查看,如果没有相应字体的话,网盘链接: https://pan.baidu.com/s/1Q8rcZinMsPY4xwuscmUJ3g ,下载平方和微软雅黑字体
fc-list :lang-zh
1
将字体 ttf 文件放到 /usr/share/fonts这个路径下,再次使用上面命令查看是否安装成功
5、测试验证
新建一个文件puppeteer.js,复制以下代码:
const puppeteer = require('/data/node-v10.15.0-linux-x64/node_modules/puppeteer');const args = process.argv;const url = args[2];const name = args[3];(async () => { const browser = await (puppeteer.launch({ // 若是手动下载的chromium需要指定chromium地址, 默认引用地址为 /项目目录/node_modules/puppeteer/.local-chromium/ executablePath: '/data/chrome-linux/chrome', //设置超时时间 timeout: 15000, //如果是访问https页面 此属性会忽略https错误 ignoreHTTPSErrors: true, // 打开开发者工具, 当此值为true时, headless总为false devtools: false, // 关闭headless模式, 不会打开浏览器 headless: true, args: [ '--disable-gpu', '--disable-dev-shm-usage', '--disable-setuid-sandbox', '--no-first-run', '--no-sandbox', '--no-zygote', '--single-process' ] })); const page = await browser.newPage(); // 设置页面分辨率 await page.setViewport({width: 750, height: 1150}); await page.goto(url); await page.screenshot({ path: name, type: 'png', // quality: 100, 只对jpg有效 fullPage: true, }); browser.close();})();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
然后在该目录下执行以下命令进行测试:
node puppeteer.js http://www.baidu.com 1.png
1
会生成一个1.png的图片,打开查看图片是否和网站内容一致即可
6、puppeteer截图常见问题:
(1)网页地址url中不能包含 & 或者是 | 等特殊符号
(2)修改chrome的启动项,可以提高截图效率
联系客服