使用 Koajs,Docker,Puppeteer 设计的REST API服务,支持自定义截图,自定义PDF保存,JS渲染(用于爬虫或者代理),除了
render
路由,其他所有路由操作都是异步,加速业务运行
部署/使用
git clone
git clone https://github.com/jiguang7/koa-puppeteer.git
pull docker images
docker pull alekzonder/puppeteer
run images 务必在当起目录下,也就是git clone的地方
docker run -d --name puppeteer -p 127.0.0.1:3200:3200 -v $PWD/koa-puppeteer/:/app/ alekzonder/puppeteer
访问
可用路由
实时日志
docker logs -f 容器名
API
所有接口以REST API的形式提供,方便分布式部署和维护
目前提供4个API接口
全局参数
token
,默认没有启用,如需使用,请去掉注释routes/api.js
22,23行screenshot
介绍
自定义截图路由
方法
支持HTTP所有方法,当请求当URL参数中存在&
字符时,不要使用GET
方法提交,因为后端获取参数值的时候会因为&
当作是另外一个参数
参数
请求
http://testnet.io:3200/screenshot?url=https://360.cn&width=900&height=800
响应
{"status":200,"error":"","message":"success screenshot","type":"screenshot","filename":"294cca10-a6cb-4fda-b919-00966fce1891.png"}
说明
200
时请求成功保存目录
screenshot
效果
screenshot/full
介绍
全屏截图路由
方法
支持HTTP所有方法,当请求当URL参数中存在&
字符时,不要使用GET
方法提交,因为后端获取参数值的时候会因为&
当作是另外一个参数
参数
全局参数URL
请求
http://testnet.io:3200/screenshot/full?url=https://360.cn
响应
{"status":200,"error":"","message":"success fullscreenshot","type":"fullscreenshot","filename":"03b8cfda-d3d8-4661-88ea-a614517e44ae.png"}
说明
200
时请求成功保存目录
fullscreenshot
效果
介绍
自定义PDF保存路由
方法
支持HTTP所有方法,当请求当URL参数中存在&
字符时,不要使用GET
方法提交,因为后端获取参数值的时候会因为&
当作是另外一个参数
参数
Legal
, A4
等请求
http://testnet.io:3200/pdf?url=https://360.cn&width=900&height=800
响应
{"status":200,"error":"","message":"success screenshot","type":"pdf","filename":"294cca10-a6cb-4fda-b919-00966fce1891.png"}
说明
200
时请求成功保存目录
效果
https://github.com/jiguang7/koa-puppeteer/blob/master/pdf/2a0d97e3-6377-47a1-a1c1-b81eda0c3e90.pdf
render
介绍
提供JS渲染过后的HTML文本,可用于爬虫和代理
方法
支持HTTP所有方法,当请求当URL参数中存在&
字符时,不要使用GET
方法提交,因为后端获取参数值的时候会因为&
当作是另外一个参数
参数
全局参数URL
请求
http://testnet.io:3200/pdf?url=https://360.cn&width=900&height=800
响应
渲染后的HTML文本
说明
渲染后的HTML文本
保存目录
浏览器
效果