返回
用javascript写shell脚本(四) 掘金自动签到脚本以及发送邮件
前端
2023-12-20 22:42:53
前言
在上一篇文章中,我们学习了如何使用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的定时任务功能,我们实现了一个可以自动签到掘金并发送邮件的脚本。希望对大家有所帮助。