网页截图 (Puppeteer)
WARNING
为了正常使用这个插件,你首先需要确保你的电脑上已经安装有 Chrome。同时,我们建议你保持 Chrome 和本插件的更新,因为版本不匹配可能会导致本插件无法正常使用。
koishi-plugin-puppeteer 本身提供了网页截图(shot)指令和 TeX 渲染指令(tex),同时也封装了一系列与网页进行交互的接口。利用这些接口我们可以开发更多以渲染图片为基础的插件。
指令:shot
网页截图。
- 基本语法:
shot <url> - 别名:screenshot
 - 选项列表: 
-f, --full对整个可滚动区域截图-v, --viewport <viewport>指定视口
 
指令:tex
LaTeX 渲染。渲染器由 https://www.zhihu.com/equationopen in new window 提供。
- 基本语法:
tex <code> - 选项列表: 
-s, --scale <scale>缩放比例
 
类:Puppeteer
可以通过 ctx.puppet 访问。
puppet.launch()
- 返回值: 
Promise<void> 
启动并连接浏览器。
puppet.close()
- 返回值: 
Promise<void> 
关闭浏览器并取消连接。
puppet.page()
- 返回值: 
Promise<Page> 
创建一个新页面。
puppet.svg(options?)
- options: 
SVGOptions图形选项 - 返回值: 
SVGElement 
启动并连接浏览器。
puppet.render(content, callback?)
- content: 
string要渲染的 HTML - callback: 
(page, next) => Promise<string>回调函数- page: 
Page页面实例 - next: 
(handle: ElementHandle) => Promise<string>渲染函数 
 - page: 
 - 返回值: 
string 
渲染一个 HTML 页面。
扩展事件
puppeteer/validate
- url: 
string - 返回值: 
string 
判断一个给定的 URL 是否可以访问。如果不能访问,返回一个字符串作为报错信息。
配置项
browser
启动浏览器时使用的配置。
protocols
- 类型: 
string[] - 默认值: 
['http', 'https'] 
允许的协议列表。如果提供的 URL 的协议不在这个列表内将会提示“请输入正确的网址”。
loadTimeout
- 类型: 
number - 默认值: 
10000 
加载页面的最长时间,单位为毫秒。当一个页面等待时间超过这个值时,如果此页面主体已经加载完成,则会发送一条提示消息“正在加载中,请稍等片刻”并继续等待加载;否则会直接提示“无法打开页面”并终止加载。
idleTimeout
- 类型: 
number - 默认值: 
30000 
等待页面空闲的最长时间,单位为毫秒。当一个页面等待时间超过这个值时,将停止进一步的加载并立即发送截图。
maxLength
- 类型: 
number - 默认值: 
1000000 
单张图片的最大尺寸,单位为字节。当截图尺寸超过这个值时会自动截取图片顶部的一段进行发送。