jiguangsdf / koa-puppeteer

REST API services created using koajs, docker, Puppeteer,screenshot

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

可用路由

实时日志

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

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

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名称

保存目录

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

About

REST API services created using koajs, docker, Puppeteer,screenshot


Languages

Language:JavaScript 83.3%Language:Dockerfile 14.3%Language:Shell 2.4%