返回

用javascript写shell脚本(四) 掘金自动签到脚本以及发送邮件

前端

前言

在上一篇文章中,我们学习了如何使用JavaScript编写Shell脚本的基础知识。在本篇文章中,我们将继续学习如何使用JavaScript编写Shell脚本,并完成一个实际的项目——掘金自动签到脚本。

掘金是一个知名的技术社区,很多技术人员都会在这里分享自己的文章和经验。掘金每天都会有签到活动,签到后可以获得掘金币,掘金币可以用来兑换各种奖品。但是,每天手动签到比较麻烦,所以我们可以编写一个脚本来自动签到。

实现步骤

1. 安装必要的库

首先,我们需要安装必要的库。在本项目中,我们需要使用Puppeteer库来模拟浏览器操作,以及Node.js的定时任务功能。

npm install puppeteer
npm install node-cron

2. 编写脚本

接下来,我们开始编写脚本。脚本的内容如下:

const puppeteer = require('puppeteer');
const cron = require('node-cron');

// 掘金签到函数
async function juejinSign() {
  // 启动浏览器
  const browser = await puppeteer.launch();
  // 打开掘金页面
  const page = await browser.newPage();
  await page.goto('https://juejin.cn/user/center/signin');

  // 登录掘金
  await page.type('#username', '你的掘金用户名');
  await page.type('#password', '你的掘金密码');
  await page.click('.signin-button');

  // 等待登录成功
  await page.waitForNavigation();

  // 签到
  await page.click('.btn-sign');

  // 关闭浏览器
  await browser.close();
}

// 发送邮件函数
async function sendEmail() {
  // 使用Nodemailer发送邮件
  const nodemailer = require('nodemailer');

  // 创建一个发送邮件的实例
  const transporter = nodemailer.createTransport({
    service: 'qq', // 使用QQ邮箱作为发送方
    auth: {
      user: '你的QQ邮箱', // 你的QQ邮箱账号
      pass: '你的QQ邮箱密码' // 你的QQ邮箱密码
    }
  });

  // 邮件选项
  const mailOptions = {
    from: '你的QQ邮箱', // 发件人
    to: '你的接收邮箱', // 收件人
    subject: '掘金自动签到成功', // 邮件主题
    text: '掘金自动签到成功,请查收。' // 邮件内容
  };

  // 发送邮件
  await transporter.sendMail(mailOptions);
}

// 定时任务
cron.schedule('0 0 9 * * *', async () => {
  // 执行掘金签到函数
  await juejinSign();

  // 执行发送邮件函数
  await sendEmail();
});

3. 运行脚本

编写好脚本后,就可以运行脚本了。在命令行中输入以下命令:

node script.js

脚本运行后,就会自动签到掘金并发送邮件。

总结

在本篇文章中,我们学习了如何使用JavaScript编写Shell脚本,并完成了一个实际的项目——掘金自动签到脚本。通过Puppeteer库模拟浏览器操作,以及Node.js的定时任务功能,我们实现了一个可以自动签到掘金并发送邮件的脚本。希望对大家有所帮助。