webstack-screenshot
v2.0.0-beta.6
Published
📸网站截图 API | Website Screenshot API
Downloads
63
Maintainers
Readme
Introduction
Just some simple screenshot operations, if you have any needs, or want to participate in the development, we welcome you to PR
Quick Start
Vercel Free Deployment
Installation
npm install webstack-screenshot --save
const webstackScreenshot = require('webstack-screenshot')
webstackScreenshot({ url: 'https://example.com' }).then((buffer) => {
console.log('buffer', buffer)
})
webstackScreenshot({ url: 'https://example.com', encoding: 'base64' }).then((base64) => {
console.log('base64', base64)
})
ServerLess
You need to configure an environment variable name
WEBSTACK_SCREENSHOT_SERVERLESS
, and the value of the environment variable can be any value you want, e.g.true
.
You may need to manually configure font files if the intercepted site contains text in other languages.
Configure the environment variable name
WEBSTACK_SCREENSHOT_FONTS
, the environment variable value can be a url or a path, multiple font files need to be split by,
. url address must behttps://
, path must be an absolute path.e.g.
/var/task/fonts/xxx.ttf,https://xxxxx/xxx/xxx.ttf
.
module.exports = require('webstack-screenshot/dist/src/serverless')
Clone Warehouse
Clone remote repository start Website screenshot API
# Clone the repository and go to the WebStack-Screenshot directory
git clone https://github.com/Lete114/WebStack-Screenshot.git WebStack-Screenshot
cd WebStack-Screenshot
# Installing Dependencies
npm install
# Start service
npm run start
Properties
Request Method: GET | POST
| Properties | Default | Type | Description |
| ---------- | -------------------------------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------- |
| url | | String | The URL of the requested website, if the domain name is entered it will be automatically spelled out as http://
|
| type | jpeg | String | The image type, png
, jpeg
, webp
|
| cache | 86400 | Int & Boolean | cache, default cache is 1 day, pass false
to disable cache, pass number like:123
to cache 123 seconds |
| quality | 50 | Int | Image quality between 0-100, ignored if the image type is png
|
| viewport | {width: 1080,height: 1920,isMobile: false}
| String | Viewport | Set the screen window size |
| fullPage | false | Boolean | Capture the full page |
| isMobile | false | Boolean | If or not it is mobile |
| await | 1000 | Int | Wait for the page to finish rendering |
| timeout | 30000 | Int | Screenshot timeout, 0
means no limit (in milliseconds) |
| encoding | binary | String | Image encoding, binary
, base64
|
| clip | | String | Clip the specified area, receive 4 units divided by English comma, x,y,width,height
|
| waitUntil | load | String | At what time the screenshot is triggered, see another table below for details |
waitUntil
| Properties | Description | | ---------------- | ----------------------------------------------- | | load | Done when the load event is fired | | domcontentloaded | Done when the DOMContentLoaded event is fired. | | networkidle0 | When there are no website requests within 500ms | | networkidle2 | When there are only 2 requests within 500ms |