资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Puppeteer中怎么实现一个自动化机器人

这篇文章给大家介绍Puppeteer中怎么实现一个自动化机器人,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联建站是一家集网站建设,永定企业网站建设,永定品牌网站建设,网站定制,永定网站建设报价,网络营销,网络优化,永定网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

Puppeteer 是 Node.js 的一个函数库,可用来操控浏览器,是 Google 的项目,可以应用的范围包括:前端的自动化测试、爬虫、表单提交等。

Selenium vs Puppeteer

之前有过用 Python 配合 Selenium 的经验,不过如果是做爬虫、自动化操作用 Puppeteer 还是非常方便的,安装简单快速,API 也容易使用。美中不足的是它只支持 Chromium 以下是两者的比较,仅供参考:

Puppeteer中怎么实现一个自动化机器人

由于 Puppeteer 是用 Node.js 写的,所以必须要先安装 Node。

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 可以至官网 下载

  3. 如果用 mac 可以使用 https://nodejs.org/en/

安装完后可以在 terminal 输入 node -v 检查是否安装成功

Puppeteer中怎么实现一个自动化机器人

然后到要开发的项目路径下输入 npm init -y 初始化项目,接着 npm i puppeteer ,安装的时候会发现它会连同 Chromium 一同安装。

Puppeteer中怎么实现一个自动化机器人

安装成功后就可以开始了。

一个简单的例子

新增一个文件 main.js ,并复制以下代码:

const puppeteer = require('puppeteer');  (async () => {    // 开启 browser   const browser = await puppeteer.launch({         headless: false   });   // 新增分页   const page = await browser.newPage();   // 到自己的博客网站   await page.goto(`https://www.myblog.com/`);   // 等待订阅按钮出现   await page.waitForSelector("button[class='subscribe-button pill-button']");   // 点击订阅按钮   await page.click("button[class='subscribe-button pill-button']"); })();

接着到终端下输入 node main.js 执行。

解释代码

前面的代码先引入 Puppeteer,以便后续使用,接下来可以看到用 async 以及 () => , async 表示函数要用到异步操作, () => 则是 JS 的箭头函数。

const puppeteer = require('puppeteer');

接下来是用 Puppeteer 打开一个浏览器 ( Chromium ),其中可以看到我们设了参数 headless : false ,如果是设定为 true ,会开启没有界面的无头浏览器,如果设定 false ,就会开一个浏览器窗口。

const browser = await puppeteer.launch({     headless: false });

这段就很简单了,它会帮你在浏览器开一个新的分页。

const page = await browser.newPage();

这段也很容易,看到 goto 就可以猜到会帮你导向后方指定的网址。

await page.goto(`https://b123105.blogspot.com/`);

最后这段代码用到了 click 这个方法,它能够帮你点击后面指定的元素,可以看到我是指定 class = subscribe-button pill-button 的 

多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220