摘要: 使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:生成网页截图或者 PDF、高级爬虫,可以爬取大量异步渲染内容的网页、模拟键盘输入、表单自动提交、登录网页等,实现 UI 自动化测试和捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题
简介
使用 puppeteer 结合函数计算,可以快速的构建弹性的服务完成各种功能,包括:
- 生成网页截图或者 PDF
- 高级爬虫,可以爬取大量异步渲染内容的网页
- 模拟键盘输入、表单自动提交、登录网页等,实现 UI 自动化测试
- 捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题
接下来,将基于一个脚手架项目开发我们自己 puppeteer 项目。
下载项目
>>> git clone -o starter-kit https://github.com/awesome-fc/puppeteer-fc-starter-kit.git your_project_name
项目结构
├── lib chrome headless 依赖的共享库,打包的时候,拷贝到打包项目的根目录下
├── chrome
│ ├── buildChrome.sh 编译 chrome headless shell 脚本,基于它,可以编译最新的版本
│ └── headless_shell.tar.gz 编译后的 chrome headless 二进制打包文件
├── src
│ ├── index.js 函数调用入口文件,函数 handler 为 index.handler,您的业务代码写在这里
│ └── starter-kit
│ ├── config.js 通过环境变量,获取相关配置属性,如:chrome 执行目录和安装目录等配置
│ ├── local.js 本地测试操作 chrome headless 的 API 是否正确,通过执行命令:npm run local
│ └── setup.js 安装 chrome headless 相关逻辑代码,如:基于 OSS 安装或者本地目录安装
├── package.json
└── package.zip 输出函数计算打包文件,通过命令:npm run package 或 npm run package-nochrome
如何写业务代码
index.js 文件