您的位置:首页 > 科技 > 能源 > 网站建设技术团队经验丰富_在哪学短视频培训课程_专业seo站长工具全面查询网站_seo博客

网站建设技术团队经验丰富_在哪学短视频培训课程_专业seo站长工具全面查询网站_seo博客

2025/4/21 15:18:59 来源:https://blog.csdn.net/qq_36120342/article/details/147300138  浏览:    关键词:网站建设技术团队经验丰富_在哪学短视频培训课程_专业seo站长工具全面查询网站_seo博客
网站建设技术团队经验丰富_在哪学短视频培训课程_专业seo站长工具全面查询网站_seo博客

麒麟ARM64环境部署Puppeteer相关服务

标准产品的CAP4报表等功能由于涉及很多后台算力,在进行报表打印时,均采用后端无头浏览器打印技术。

标准产品默认的后台打印使用PhantomJS技术,这种技术在信创环境支持较弱,同时随着PhantomJS不再维护,其功能在非信创环境下的兼容性也越来越差。

当项目上遇到无法使用默认的PhantomJS打印时,则需要考虑替代方案,目前市面推荐的是采用“Node+Puppeteer+Chromium”替代(后文均简称Puppeteer)。

Puppeteer: 是 Google Chrome 的 Headless 版本的一个工具,它提供了一个高级的 API 来控制 Chrome。与 PhantomJS 相比,Puppeteer 提供了更为强大的功能,并且是 Chrome 团队官方支持的项目。

文章目录

    • 麒麟ARM64环境部署Puppeteer相关服务
    • 目标
    • Puppeteer简介
      • 1.核心特性
      • 2.技术优势
      • 3.与其他工具的对比
    • 安装步骤
      • 1.制作离线包
        • 1.1. 制作node离线包
        • 1.2. 制作puppeteer测试(在node环境制造)
        • 1.3. 制作chromium离线包
      • 2.安装node
      • 3.安装chromium
        • 3.1. 安装chromium
        • 3.2. 查看版本
      • 4.截图打印测试:
        • 4.1 chromium测试:
        • 4.2 node js打印测试:

目标

麒麟ARM64环境部署Puppeteer相关服务

本文档提供详细安装部署步骤,主要讲解制作离线包、安装、测试

Puppeteer简介

Puppeteer 是一款由 Google 团队开发的 Node.js 库,通过 DevTools 协议控制 Chromium 或 Chrome 浏览器,支持以无头模式(无界面)或有头模式运行‌23。其核心功能是通过编程方式模拟浏览器操作(如点击、滚动、表单填写等),适用于自动化测试、数据抓取、页面渲染等场景‌。

1.核心特性

  1. 无头浏览器支持
    默认以无界面模式运行,减少资源消耗,适合服务器端自动化任务‌。
  2. 动态网页处理
    支持渲染 JavaScript 动态加载的页面,解决传统爬虫工具难以处理异步数据的问题‌。
  3. ‌多场景应用
    • 自动化测试‌:模拟用户操作进行端到端测试(如 UI 交互、表单提交)‌;
    • 数据抓取‌:高效爬取单页应用(SPA)及动态生成内容‌;
    • 页面生成‌:生成截图、PDF(支持自定义格式)‌;
    • 性能分析‌:捕获页面加载时间线,辅助性能优化‌。

2.技术优势

  • API 丰富性‌:提供完整的浏览器交互接口,覆盖导航、网络请求拦截、Cookie 管理等‌;
  • 跨平台支持‌:兼容 Windows、macOS、Linux 系统‌;
  • 与现代前端技术兼容‌:相比传统工具(如 Selenium),对单页应用和现代 Web 框架支持更优‌8。

3.与其他工具的对比

Puppeteer 相较于 Selenium 的通信效率更高,且无需依赖 WebDriver,直接通过浏览器协议实现更高效的自动化操作‌8。此外,其原生支持 Chrome 生态,调试和功能扩展更为便捷‌。

安装步骤

1.制作离线包

1.1. 制作node离线包
wget https://nodejs.org/dist/v18.10.0/node-v18.10.0-linux-arm64.tar.gz
1.2. 制作puppeteer测试(在node环境制造)
mkdir -p puppeteer-test && cd puppeteer-test
npm install puppeteer@10.4.0 # 新建文件test.js
cat > test.js << EOFconst puppeteer = require("puppeteer");(async () => {const browser =await  puppeteer.launch( {headless: true,executablePath:'/usr/bin/chromium-browser'});console.log(134);const page = await browser.newPage();await page.setViewport({width: 1400,height: 800,});await page.goto("https://baidu.com"); await page.screenshot({ path: "example.png" ,fullPage: true }) await browser.close();
})();
EOF
cd ..
1.3. 制作chromium离线包
cat > /etc/yum.repos.d/kylin_aarch64.repo <<EOF
[ks10-adv-os]
name = Kylin Linux Advanced Server 10 - Os 
baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP1/os/adv/lic/base/aarch64/
gpgcheck = 0
enabled = 1[ks10-adv-updates]
name = Kylin Linux Advanced Server 10 - Updates
baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP1/os/adv/lic/updates/aarch64/
gpgcheck = 0
enabled = 1[ks10-adv-addons]
name = Kylin Linux Advanced Server 10 - Addons
baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP1/os/adv/lic/addons/aarch64/
gpgcheck = 0
enabled =1[kylinos]
name = kylinos
baseurl = http://archive2.kylinos.cn/rpm/kylin/Library/custom/kylin-server/KY10-GFB-aarch64/
enabled = 0
gpgcheck = 0
EOFyum clean all
yum makecache
mkdir -p chromium 
cd chromium
yum install --enablerepo=kylinos  chromium --downloadonly --downloaddir=./ -ycat > install.sh <<EOF
#!/bin/sh
# 当前目录
CURRENT_DIR=\$(cd "\$(dirname "\$0")"pwd
)rpm -hvi *.rpm --nodeps --forceecho "安装内容如下:"
for fileName in \`ls \$CURRENT_DIR | grep rpm\`
donew_fileName="\${fileName:0:\${#fileName}-4}"rpm -qa| grep \$new_fileName
done
EOFcat > uninstall.sh <<EOF
#!/bin/sh
rpm -e chromium-81.0.4044.138-2.ky10.aarch64
rpm -e chromium-common-81.0.4044.138-2.ky10.aarch64
rpm -e nss-mdns-0.14.1-3.ky10.aarch64
rpm -e minizip-devel-1.2.11-25.gfb01.ky10.aarch64
rpm -e avahi-0.7-21.ky10.aarch64
rpm -e libXScrnSaver-1.2.3-4.ky10.aarch64
rpm -e minizip-1.2.11-25.gfb01.ky10.aarch64
rpm -e u2f-hidraw-policy-1.0.2-9.ky10.aarch64
rpm -e freetype-2.10.1-1.ky10.aarch64
EOF

在这里插入图片描述

2.安装node

tar -zxvf node-v18.10.0-linux-arm64.tar.gz
mv node-v18.10.0-linux-arm64 /usr/local/node
/usr/local/node/bin/node -v
vim /etc/profile
#将如下内容添加到/etc/profileexport NODE_HOME=/usr/local/node
export NODE_PATH=/usr/local/node/lib/node_modules
export PATH=$PATH:$NODE_HOME/bin:$NODE_PATH
#再执行如下命令:
source /etc/profile
#查看版本:
node -v

3.安装chromium

3.1. 安装chromium
bash install.sh
3.2. 查看版本
chromium-browser -version

在这里插入图片描述

4.截图打印测试:

4.1 chromium测试:

执行命令(http://127.0.0.1 为可以访问的有页面的url):

/usr/bin/chromium-browser --no-sandbox --headless --disable-gpu --disable-software-rasterizer --print-to-pdf=./test.pdf http://127.0.0.1

当前目录生成test.pdf

在这里插入图片描述

4.2 node js打印测试:
cd puppeteer-test
node test.js

查看当前目录的example.png图片

在这里插入图片描述

总结文章https://open.seeyoncloud.com/v5doc/142/1185/1003.html

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com