当前位置: 首页 > 科技观察

使用Puppeteer实现一个自动化机器人

时间:2023-03-14 17:46:13 科技观察

目录介绍Seleniumv??sPuppeteer安装一个简单的例子讲解打包项目container容器时的一些陷阱1.Puppeteer安装Chromium时会丢失一些组件2.页面焦点问题3.页面崩溃问题4.时区问题Puppeteer是Node.js的一个函数库,可以用来控制浏览器。是Google的一个项目,适用范围包括:前端自动化测试、爬虫、表单提交等。自动化操作。安装简单快捷,API易于使用。美中不足的是只支持Chromium下面是两者的对比,仅供参考:由于Puppeteer是用Node.js写的,所以必须先安装Node。您可以从官方网站下载它。如果是mac,可以使用https://nodejs.org/en/安装完成后可以在终端输入node-v查看是否安装成功,然后在项目路径输入npminit-y即可developed初始化项目,然后npmipuppeteer,安装的时候会发现会和Chromium一起安装。安装成功后,就可以开始了。一个简单的例子添加一个新文件main.js并复制以下代码:constpuppeteer=require('puppeteer');(async()=>{//Openbrowserconstbrowser=awaitpuppeteer.launch({headless:false});//添加新页面constpage=awaitbrowser.newPage();//转到自己的博客站点awaitpage.goto(`https://www.myblog.com/`);//等待订阅按钮出现awaitpage.waitForSelector("button[class='subscribe-buttonpill-button']");//点击订阅按钮awaitpage.click("button[class='subscribe-buttonpill-button']");})();然后在终端.js执行中输入nodemain。解释一下代码前面的代码先介绍了Puppeteer,方便后续使用。接下来可以看到使用了async和()=>,async表示函数需要使用异步操作,而()=>是JS的箭头函数。constpuppeteer=require('木偶师');接下来就是用Puppeteer打开一个浏览器(Chromium),这里可以看到我们设置了参数headless:false,如果设置为true,会打开一个无界面的headless浏览器,如果设置为false,一个浏览器窗口将打开。constbrowser=awaitpuppeteer.launch({headless:false});这部分非常简单,它会帮助您在浏览器中打开一个新页面。constpage=awaitbrowser.newPage();这段也很容易,看到goto就可以猜到它会帮你到后面指定的url。awaitpage.goto(`https://b123105.blogspot.com/`);最后一段代码使用了click方法,可以帮助你点击后面指定的元素。您可以看到我指定了class=subscribe-buttonpill-button