首页 > 解决方案 > 将 Puppeteer 与 Discord 机器人一起使用

问题描述

我和我的朋友一直在开发一个使用 Puppeteer 的 Discord 机器人,Puppeteer 是一个允许无头浏览器自动化的 Node 库。现在,程序登录我们学校的网站,可以显示通过 Discord bot 登录的用户的成绩。最终目标是创建一个机器人,自动向我们班级的服务器发送有关教师发布的新作业的 Discord 通知。这是到目前为止登录过程的一个小示例:

await page.type('#username', username);
await page.click("#recaptcha");
await page.waitForSelector(".googleplus-login", {visible: true});
const newPagePromise = new Promise(x => browser.once('targetcreated', target => x(target.page())));
if (userAgent.includes("Headless")) {
  // Headless Browsing
  console.log("Headless Mode");
  await page.click(".googleplus-login");
  const newPage = await newPagePromise;
  await newPage.waitForSelector("#Email", {visible: true});
  await newPage.type("#Email", username);
  await newPage.click("#next");

到目前为止,我们最好的想法是让某些人自愿参加某些课程以在后台运行 Puppeteer,以便制作一个“网络”,由每个人参加的所有各种课程组成。这个“网络”将允许我的计算机每 15 分钟从所有运行 Puppeteer 的计算机中获取数据,并向整个服务器发送通知,告知哪些课程发布了新作业。这个解决方案感觉很笨重,并不适合所有人。

我们的想法还有其他选择吗?最好只在一台计算机上运行?我不介意它是否使用 Puppeteer 以外的东西,只要它使用 Node。

谢谢!

PS:我们学校的网站确实有API,但只对学校IT管理员开放。因此,我们必须通过 Puppeteer 的登录过程,这需要一点时间。

标签: javascriptnode.jsdiscord.jspuppeteer

解决方案


推荐阅读