Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jiguangsdf/koa-puppeteer
REST API services created using koajs, docker, Puppeteer,screenshot
https://github.com/jiguangsdf/koa-puppeteer
docker koa koa2 koajs puppeteer
Last synced: 2 months ago
JSON representation
REST API services created using koajs, docker, Puppeteer,screenshot
- Host: GitHub
- URL: https://github.com/jiguangsdf/koa-puppeteer
- Owner: jiguangsdf
- Created: 2018-11-22T19:59:50.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-22T21:16:29.000Z (about 6 years ago)
- Last Synced: 2024-10-01T02:20:54.273Z (3 months ago)
- Topics: docker, koa, koa2, koajs, puppeteer
- Language: JavaScript
- Homepage:
- Size: 10.7 MB
- Stars: 12
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# koa-puppeteer
> 使用 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`
访问
http://127.0.0.1:3200
可用路由
- http://127.0.0.1:3200/screenshot
- http://127.0.0.1:3200/screenshot/full
- http://127.0.0.1:3200/pdf
- http://127.0.0.1:3200/render实时日志
docker logs -f 容器名
**API**
> 所有接口以REST API的形式提供,方便分布式部署和维护
目前提供4个API接口
- screenshot 网页自定义截图
- screenshot/full 网页全屏截图
- pdf 网页自定义PDF保存
- render 渲染并序列化网页的HTML文本**全局参数**
- url 需要截图或者渲染的原始URL
- ticekt 公网部署的时候用于授权行为的`token`,默认没有启用,如需使用,请去掉注释`routes/api.js` 22,23行**screenshot**
介绍
自定义截图路由
方法
支持HTTP所有方法,当请求当URL参数中存在`&`字符时,不要使用`GET`方法提交,因为后端获取参数值的时候会因为`&`当作是另外一个参数
参数
- width 在截图和PDF保存路由中使用,浏览器渲染的时候取的宽度,单位是像素
- heigth 在截图和PDF保存路由中使用,浏览器渲染的时候取的高度,单位是像素请求
`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"}
```说明
- status 请求响应状态码,当且仅当是 `200`时请求成功
- error 当请求发生错误时的错误类型
- message 响应提示信息
- type 请求的路由类型
- filename 截图名称保存目录
screenshot
效果
![koa-puppeteer](https://raw.githubusercontent.com/jiguang7/koa-puppeteer/master/screenshot/0203beb3-34b2-4b3d-a76f-2ebf591128a4.png)
**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"}
```说明
- status 请求响应状态码,当且仅当是 `200`时请求成功
- error 当请求发生错误时的错误类型
- message 响应提示信息
- type 请求的路由类型
- filename 截图名称保存目录
fullscreenshot
效果
![koa-puppeteer](https://raw.githubusercontent.com/jiguang7/koa-puppeteer/master/fullscreenshot/e7071230-4a1c-4a10-97b6-18742787711f.png)
**pdf**
介绍
自定义PDF保存路由
方法
支持HTTP所有方法,当请求当URL参数中存在`&`字符时,不要使用`GET`方法提交,因为后端获取参数值的时候会因为`&`当作是另外一个参数
参数
- width 在截图和PDF保存路由中使用,浏览器渲染的时候取的宽度,单位是像素
- heigth 在截图和PDF保存路由中使用,浏览器渲染的时候取的高度,单位是像素
- format 自定义PDF格式,format 的优先级高于 width,height 如果设置了,将覆盖 width 和 height 配置 默认是 'Letter',可选 `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"}
```说明
- status 请求响应状态码,当且仅当是 `200`时请求成功
- error 当请求发生错误时的错误类型
- message 响应提示信息
- type 请求的路由类型
- filename PDF名称保存目录
效果
`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文本
```保存目录
浏览器
效果
![koa-puppeteer](https://raw.githubusercontent.com/jiguang7/koa-puppeteer/master/render/WX20181123-040208%402x.png)