跳至主要内容

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 错误。