打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
centos下使用puppeteer进行网页截图截图常见问题:

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的启动项,可以提高截图效率

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
puppeteer学习(二)
爬虫神器 Pyppeteer 介绍及爬取某商城实战
centos nodejs安装puppeteer 遇到的一些错误
使用puppeteer提取网页中的视频地址 使用puppeteer提取网页中的视频
puppeteer实现线上服务器任意区域截图
把HTML转成PDF的4个方案及实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服