1、安装nodejs 由于puppeteer目前只支持在node环境中运行,所以需要提前安装nodejs: centos下安装nodejs 2、安装chromium 手动去这个网站下载 https://npm./mirrors/chromium-browser-snapshots/: 切换到data目录 cd /data
比如下载609904版本的谷歌浏览器 wget https://npm./mirrors/chromium-browser-snapshots/Linux_x64/609904/chrome-linux.zip
解压进入目录,查看谷歌浏览器的依赖是否安装完全 ldd chrome
如果依赖没有安装完全,则执行以下命令安装依赖,完成以后用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
修改puppeter.js的 executablePath: ‘/data/chrome-linux/chrome’ 3、安装puppeteer 切换到node的安装目录 cd /data/node-v10.15.0-linux-x64/
初始化npm,一直回车就行了,会生成一个package.json文件 npm init
然后安装puppeteer npm i puppeteer --ignore-scripts
修改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
将字体 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.png的图片,打开查看图片是否和网站内容一致即可 6、puppeteer截图常见问题: (1)网页地址url中不能包含 & 或者是 | 等特殊符号 (2)修改chrome的启动项,可以提高截图效率
|