寄存器|登录

Wave独立API文档

系统要求

安装

解压缩所有API包文件,然后上传或传输到web服务器。htdocs目录中的文件必须可以通过网络服务器访问。万博体育官网网址如果有必要,可以设置一个Apache或Nginx站点或虚拟目录来指向包含请求的目录。或将这些文件放在现有的web director中。“核心”目录不能公开访问,必须包含Puppeteer库(见下文)。万博体育官网网址

安装木偶尔

波API需要操纵木偶的节点库

要安装Pupppeteer,请在API的“/核心/”目录中运行以下内容:
npm i puppeteer.

你可能需要首先安装node.js和npm。需要节点v7.6.0或更大。对于Linux,最好这样做使用nodesource安装程序

根据您的操作系统,您可能需要为Chromium浏览器安装依赖项来运行。阅读有关查找和安装铬依赖项的详细信息。在Debian / Ubuntu上,以下命令应安装所有必需的依赖项:
sudo apt-get安装gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango - 1.0 - 0 libpangocairo - 1.0 - 0 libstdc + + 6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca证书fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget

对于Amazon EC2 Linux AMI,请阅读这些说明。

如果您专门使用Browserless.io服务,则可以安装Pupppeteer-Core,其不包含Chromium Browser:
npm我puppeteer-core

配置WAVE独立API

API查询和输出参数

看到https://wave.www.kanehsu.com/api/details对于所有参数和API使用细节(当然,您需要修改url以指向您的本地安装)。此外,独立API允许您传递上面定义的其他参数。如果设置,这些将覆盖user.config中设置的任何参数。json文件。

API文档和对象

波文档API可以通过文档通过公共波网站自由访问https://wave.www.kanehsu.com/api/details#documentation.。可以根据要求提供适用于您的应用程序中的所有波浪项目(包括文档)的JSON对象。

预加载和后加载脚本

Puppeteer脚本可以在加载和呈现要评估的页面之前和之后运行。预加载脚本允许您执行一些过程,如登录到web站点或设置cookie或本地存储数据(可能带有会话信息)——如果要评估的页面需要身份验证(复杂的身份验证,比如双因素身份验证,可能无法直接工作),那么这些脚本非常有用。Post-load脚本允许您在WAVE分析页面之前操作页面内容、填写表单、触发错误消息、触发单个页面应用程序状态更改等。

脚本必须以.js扩展名保存在/temp/ Scripts /目录中。脚本模板必须格式化如下:

模块。exports = async(页面)=> {
这里的木偶命令
返回页面;
};

要运行加载前或加载后脚本,请附加规定和/或附言获取API请求的参数 -Request.php?key =您的Key&URL = yourull规定= mypreloadscript.js&postscript = mypostloadscript.js

重要提示:因为木偶脚本脚本完全控制API内的铬浏览器,因此护理是为了确保访问受到限制。

有许多傀儡脚本的示例可用https://github.com/checkly/puppeteer-examples.。您可以使用录制页面交互Puppeteer录音机Chrome扩展

不要包括高级木偶仪命令,例如异步,Const Puppeteer =要求('木偶');,const浏览器,const页面,等待Browser.Close()等 - 这些是由API处理的。预加载脚本通常会以a开头Page.goto.打开页面(例如登录页面)。后加载后脚本不包括Page.goto.,但将操纵正在评估的页面的内容或交互。元素选择器(使用Pubppeteer Recorder或Developer Tools)用于识别页面内的组件。

登录网站的规定

module.exports = async(page)=> {await page.goto('https://mysite.com/login');await page.waitfor('#username');await page.type('#username','myusername');await page.waitfor('#密码');await page.type('#密码','myp @ 55word');await page.click('。login-button');Await Page.waitforselector('#maincontent');返回页面;};

此规定标记加载登录页面,可确保您提供用户名和密码字段,将用户名和密码键入相应的字段中,单击“登录”按钮(class =“login-button”),然后等待“id = maincontent”元素,以加载到结果页面中。要评估的页面将在适当的位置装载身份验证和cookie。

规定设置网站cookie

对于依赖cookie验证身份验证信息的站点,您可以通过开发人员工具或editThiscookie浏览器扩展捕获cookie值,然后在规定的规定中设置此cookie数据。

module.exports = async(page)=> {const cookie = {“域”:“web.org”,“hostonly”:true,“httponly”:faose,“name”:“sessionid”,“path”:“/“,”samesite“:”no_rectriction“,”安全“:false,”session“:true,”storeid“:”0“,”值“:”值“:”01234567890“,”ID“:1} await页面.setcookie(cookie)返回页面;};

使用sessionID cookie到位,您可以评估站点上的页面,否则将需要单独的身份验证。

规定设置本地存储会话数据

某些站点使用本地存储而不是Cookie来存储身份验证数据。这也可以在评估页面之前捕获并注入。

module.exports = async(page)=> {let json = {“letmuser”:“{\”username \“:\”username@domain.org \“,\”token \“:\”eyj0exaiojkv1qiilcjhbgcio \“}”};等待Page.evaluateOnnewdocument(JSON => {localStorage.clear(); for(允许json中的键)localstorage.setItem(key,Json [key]);},json);返回页面;};

有了会话数据,您就可以评估站点上需要身份验证的页面了。

用于操作页面内容的Postscript

module.exports = async(page)=> {await page.waitfor('#search');await page.type('#search','约翰');await page.click('#search-button');await page.waitfor('#搜索结果');await page.click('#搜索 - 结果> div> .details:nth-​​child(4)');Await Page.waitfor(1000);返回页面;};

这个木偶脚本将等待ID =“搜索”输入元素,在该字段中输入单词“John”,点击搜索按钮,等待搜索结果元素,然后点击第4个按钮(在class=“details”内),等待1000毫秒,细节对话框出现。完成后脚本后,API将等待evaldelay在分析页面之前毫秒(默认250)。

脚本目前还处于试验阶段!它们可能会显著增加API处理时间,并可能导致错误,特别是当页面内容在API分析之前丢失或在分析期间发生更改时。可以通过附加。来检查内部错误?debug = true将参数获取到您的请求,或者可以在脚本进程的任何时候将屏幕截图拍摄到/temp/screenshots/temp.png,其中包含以下Puppeteer脚本命令:
await page.screenshot({path:wave.api.config ['temp_path'] +“screenshots / temp.png”,fullpage:true});

使用条款

通过许可Wave Wain独立在线Web服务,API和/或相关系统(以下简称为Wave),您确认您已阅读,理解,并同意受到您的波的使用条款的约束执照。