{"id":14989451,"url":"https://github.com/jiguangsdf/koa-puppeteer","last_synced_at":"2025-04-12T01:40:40.462Z","repository":{"id":144443203,"uuid":"158745217","full_name":"jiguangsdf/koa-puppeteer","owner":"jiguangsdf","description":"REST API services created using koajs, docker, Puppeteer,screenshot","archived":false,"fork":false,"pushed_at":"2018-11-22T21:16:29.000Z","size":11226,"stargazers_count":12,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T21:21:41.915Z","etag":null,"topics":["docker","koa","koa2","koajs","puppeteer"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jiguangsdf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-11-22T19:59:50.000Z","updated_at":"2021-08-20T05:49:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"6d1e7fd4-d619-4597-95ba-4652f401ccd3","html_url":"https://github.com/jiguangsdf/koa-puppeteer","commit_stats":{"total_commits":6,"total_committers":2,"mean_commits":3.0,"dds":"0.16666666666666663","last_synced_commit":"d94473a6f83df7b081f1a89d0f8569776cdbe759"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiguangsdf%2Fkoa-puppeteer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiguangsdf%2Fkoa-puppeteer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiguangsdf%2Fkoa-puppeteer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiguangsdf%2Fkoa-puppeteer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jiguangsdf","download_url":"https://codeload.github.com/jiguangsdf/koa-puppeteer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248505716,"owners_count":21115352,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","koa","koa2","koajs","puppeteer"],"created_at":"2024-09-24T14:18:23.597Z","updated_at":"2025-04-12T01:40:40.441Z","avatar_url":"https://github.com/jiguangsdf.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# koa-puppeteer\n\u003e 使用 Koajs,Docker,Puppeteer 设计的REST API服务，支持自定义截图，自定义PDF保存，JS渲染(用于爬虫或者代理),除了`render`路由，其他所有路由操作都是异步，加速业务运行\n\n\n**部署/使用**\n\ngit clone\n\n`git clone https://github.com/jiguang7/koa-puppeteer.git`\n\npull docker images\n\n`docker pull alekzonder/puppeteer`\n\nrun images\n务必在当起目录下，也就是git clone的地方\n\n`docker run -d --name puppeteer -p 127.0.0.1:3200:3200 -v $PWD/koa-puppeteer/:/app/  alekzonder/puppeteer`\n\n访问\n\nhttp://127.0.0.1:3200\n\n可用路由\n\n- http://127.0.0.1:3200/screenshot\n- http://127.0.0.1:3200/screenshot/full\n- http://127.0.0.1:3200/pdf\n- http://127.0.0.1:3200/render\n\n实时日志\n\ndocker logs -f 容器名\n\n\n\n\n**API**\n\n\u003e 所有接口以REST API的形式提供，方便分布式部署和维护\n\n目前提供4个API接口\n\n- screenshot 网页自定义截图\n- screenshot/full 网页全屏截图\n- pdf 网页自定义PDF保存\n- render 渲染并序列化网页的HTML文本 \n\n**全局参数**\n\n- url 需要截图或者渲染的原始URL\n- ticekt 公网部署的时候用于授权行为的`token`,默认没有启用，如需使用,请去掉注释`routes/api.js` 22,23行\n\n\n**screenshot**\n\n介绍\n\n自定义截图路由\n\n方法\n\n支持HTTP所有方法，当请求当URL参数中存在`\u0026`字符时，不要使用`GET`方法提交，因为后端获取参数值的时候会因为`\u0026`当作是另外一个参数\n\n参数\n\n- width 在截图和PDF保存路由中使用，浏览器渲染的时候取的宽度，单位是像素\n- heigth 在截图和PDF保存路由中使用，浏览器渲染的时候取的高度，单位是像素\n\n请求\n\n`http://testnet.io:3200/screenshot?url=https://360.cn\u0026width=900\u0026height=800`\n\n响应\n\n```\n{\"status\":200,\"error\":\"\",\"message\":\"success screenshot\",\"type\":\"screenshot\",\"filename\":\"294cca10-a6cb-4fda-b919-00966fce1891.png\"}\n```\n\n说明\n\n- status 请求响应状态码，当且仅当是 `200`时请求成功\n- error 当请求发生错误时的错误类型\n- message 响应提示信息\n- type 请求的路由类型\n- filename 截图名称\n\n保存目录\n\nscreenshot\n\n\n效果\n\n![koa-puppeteer](https://raw.githubusercontent.com/jiguang7/koa-puppeteer/master/screenshot/0203beb3-34b2-4b3d-a76f-2ebf591128a4.png)\n\n\n**screenshot/full**\n\n介绍\n\n全屏截图路由\n\n方法\n\n支持HTTP所有方法，当请求当URL参数中存在`\u0026`字符时，不要使用`GET`方法提交，因为后端获取参数值的时候会因为`\u0026`当作是另外一个参数\n\n参数\n\n全局参数URL\n\n请求\n\n`http://testnet.io:3200/screenshot/full?url=https://360.cn`\n\n响应\n\n```\n{\"status\":200,\"error\":\"\",\"message\":\"success fullscreenshot\",\"type\":\"fullscreenshot\",\"filename\":\"03b8cfda-d3d8-4661-88ea-a614517e44ae.png\"}\n```\n\n说明\n\n- status 请求响应状态码，当且仅当是 `200`时请求成功\n- error 当请求发生错误时的错误类型\n- message 响应提示信息\n- type 请求的路由类型\n- filename 截图名称\n\n保存目录\n\nfullscreenshot\n\n\n效果\n\n![koa-puppeteer](https://raw.githubusercontent.com/jiguang7/koa-puppeteer/master/fullscreenshot/e7071230-4a1c-4a10-97b6-18742787711f.png)\n\n\n**pdf**\n\n介绍\n\n自定义PDF保存路由\n\n方法\n\n支持HTTP所有方法，当请求当URL参数中存在`\u0026`字符时，不要使用`GET`方法提交，因为后端获取参数值的时候会因为`\u0026`当作是另外一个参数\n\n参数\n\n- width 在截图和PDF保存路由中使用，浏览器渲染的时候取的宽度，单位是像素\n- heigth 在截图和PDF保存路由中使用，浏览器渲染的时候取的高度，单位是像素\n- format 自定义PDF格式，format 的优先级高于 width,height 如果设置了，将覆盖 width 和 height 配置 默认是 'Letter',可选 `Legal`, `A4` 等\n\n请求\n\n`http://testnet.io:3200/pdf?url=https://360.cn\u0026width=900\u0026height=800`\n\n响应\n\n```\n{\"status\":200,\"error\":\"\",\"message\":\"success screenshot\",\"type\":\"pdf\",\"filename\":\"294cca10-a6cb-4fda-b919-00966fce1891.png\"}\n```\n\n说明\n\n- status 请求响应状态码，当且仅当是 `200`时请求成功\n- error 当请求发生错误时的错误类型\n- message 响应提示信息\n- type 请求的路由类型\n- filename PDF名称\n\n保存目录\n\npdf\n\n效果\n\n`https://github.com/jiguang7/koa-puppeteer/blob/master/pdf/2a0d97e3-6377-47a1-a1c1-b81eda0c3e90.pdf`\n\n\n**render**\n\n介绍\n\n提供JS渲染过后的HTML文本，可用于爬虫和代理\n\n方法\n\n支持HTTP所有方法，当请求当URL参数中存在`\u0026`字符时，不要使用`GET`方法提交，因为后端获取参数值的时候会因为`\u0026`当作是另外一个参数\n\n参数\n\n全局参数URL\n\n请求\n\n`http://testnet.io:3200/pdf?url=https://360.cn\u0026width=900\u0026height=800`\n\n响应\n\n```\n渲染后的HTML文本\n```\n\n说明\n\n```\n渲染后的HTML文本\n```\n\n保存目录\n\n浏览器\n\n\n效果\n\n![koa-puppeteer](https://raw.githubusercontent.com/jiguang7/koa-puppeteer/master/render/WX20181123-040208%402x.png)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiguangsdf%2Fkoa-puppeteer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjiguangsdf%2Fkoa-puppeteer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiguangsdf%2Fkoa-puppeteer/lists"}