当前位置: 首页 > 后端技术 > Node.js

好用的Puppeteer辅助工具PuppeteerRecorder

时间:2023-04-03 22:59:12 Node.js

PuppeteerPuppeteer是一个Node库,它提供了一个高级API来控制DevTools协议上的Chrome或Chromium。常用于爬虫、自动化测试等,你在浏览器中手动做的大部分事情都可以用它来完成。网站上介绍Puppeteer的文章很多,这里就不介绍了。但是不管是爬虫还是自动化测试,如果要写Puppeteer脚本,首先得分析网页,讲道理,每个网站都不一样,就尴尬了。PuppeteerRecorderPuppeteerRecorder是一个Chrome扩展程序,可以记录您的浏览器交互并生成Puppeteer脚本。下图是segmentfault点击排行榜增加用户关注度为Chestnut录制的脚本。是不是看起来很有规律,写cookie然后改成for循环,一个自动加注意力的脚本就完成了。注意事项目前这个项目比较简单。通过分析几个事件生成代码,问题还是会比较多。比如最终选择器和点击前的选择器不一致。选择器由js脚本动态生成,需要waitFor等待等。这些问题本身也是开发前分析网页甚至调试需要遇到的问题,还是需要注意改成自动脚本。以下为部分源代码_parseEvents(events){console.debug(`为${events.length}事件生成代码`)letresult=''for(leteventofevents){const{action,selector,value,href,keyCode}=事件开关(动作){case'keydown':result+=this._handleKeyDown(selector,value,keyCode)breakcase'click':result+=this._handleClick(selector,href)breakcase'goto*':结果+=`awaitpage.goto('${href}')\n`breakcase'reload':result+=`awaitpage.reload()\n`break}}returnresult}_handleKeyDown(selector,value,keyCode){if(keyCode===9)return`awaitpage.type('${selector}','${value}')\n`return''}参考PuppeteerPuppeteerRecorder