Skip to main content

Webrender

Webrender 为小可的外置服务。主要用于处理 Wiki Infobox 图片渲染、HTML 渲染以及部分功能的访问代理。

此服务使用 JavaScript 编写,并由 Puppeteer 驱动,因此需要安装 Node.js 环境,以及安装 Chromium 内核浏览器。

部署

请前往此处下载源文件,并在终端内安装依赖。

npm install

前往此处下载任意版本 Chromium,或前往 Chromium 官方网站下载。

package.json 同级目录中,中新建 .env 文件,并填写以下字段:

.env
CHROMIUM_PATH = # Chromium 可执行文件位置
FC_SERVER_PORT = 15551 # API 监听端口

使用 node 运行 ./src/index.js 来开启服务。

node ./src/index.js

API 监听端口默认位于 15551,可自行选择配置代理。

请在配置文件web_render 配置项填写访问地址,如 http://127.0.0.1:15551

[secret]
web_render = "http://127.0.0.1:15551"
...
[cfg]
...
web_render_local = "http://127.0.0.1:15551"
...

用法

以下为 Webrender API 的用法。

带有星号(*)为必填项。

/

此 API 可以生成网页内容截图。

请求方法

POST

请求参数

参数数据类型默认值说明
content*stringundefined要加载到页面的 HTML 内容。
widthint500截图的宽度(px)。
heightint1000截图的高度(px)。
mwboolundefined是否仅截取主要内容。
tracingboolFalse是否启用页面追踪。

响应

情况返回值
成功返回生成的 JPEG 格式页面截图。
失败返回 500 错误。

/element_screenshot

此 API 可以生成指定元素的网页内容截图。

请求方法

POST

请求参数

参数数据类型默认值说明
element*string[]undefined指定要截图的元素的 CSS 选择器。
contentstringundefined要加载到页面的 HTML 内容。
urlstringundefined要加载的页面的 URL。
cssstringundefined要应用于页面的自定义 CSS 样式。
widthint720截图的宽度(px)。
heightint1290截图的高度(px)。
counttimeboolTrue是否在截图中添加计时框。
tracingboolFalse是否启用页面追踪。

响应

情况返回值
成功返回生成的 JPEG 格式页面截图。
失败返回 500 错误。

/section_screenshot

此 API 可以生成网页中特定区域的内容截图。

请求方法

POST

请求参数

参数数据类型默认值说明
section*stringundefined要截取的区域的 HTML 元素的 ID。
contentstringundefined要加载到页面的 HTML 内容。
urlstringundefined要加载的页面的 URL。
cssstringundefined要应用于页面的自定义 CSS 样式。
widthint720截图的宽度(px)。
heightint1280截图的高度(px)。
counttimeboolTrue是否在截图中添加计时框。
tracingboolFalse是否启用页面追踪。

响应

情况返回值
成功返回生成的 JPEG 格式页面截图。
失败返回 500 错误。

/page

此 API 可以生成指定 URL 页面的截图。

请求方法

POST

请求参数

参数数据类型默认值说明
url*stringundefined要加载的页面的 URL。
cssstringundefined要应用于页面的自定义 CSS 样式。

响应

情况返回值
成功返回生成的 JPEG 格式页面截图。
失败返回 500 错误。

/source

此 API 可以获取网页源代码。

请求方法

GET

请求参数

参数数据类型默认值说明
url*stringundefined要加载的页面的 URL。

响应

情况返回值
成功返回请求的网页内容。
失败返回 500 错误。