返回

用代码表达爱意,Node + EJS写爬虫脚本,每天定时给女朋友发一封暖心邮件

前端

在数字化的时代里,用代码表达爱意已经成为一种新的浪漫方式。本文将介绍如何使用 Node.js 和 EJS 编写一个爬虫脚本,每天定时获取天气预报和每日一言,并发送一封包含这些信息的电子邮件给女朋友。

1. 准备工作

首先,我们需要安装必要的软件包。

npm install nodemailer ejs

接下来,我们需要创建一个新的 Node.js 项目。

mkdir my-project
cd my-project
npm init -y

在项目中,我们需要创建一个新的文件,如 index.js

2. 编写爬虫脚本

index.js 文件中,我们需要编写爬虫脚本。

const nodemailer = require('nodemailer');
const ejs = require('ejs');

// 创建一个新的SMTP传输器
const transporter = nodemailer.createTransport({
  service: 'gmail',
  auth: {
    user: 'your@email.com',
    pass: 'your_password'
  }
});

// 每天早上 8 点定时发送邮件
const sendMail = () => {
  // 获取天气预报
  const weatherData = getWeatherData();

  // 获取每日一言
  const quoteData = getQuoteData();

  // 使用 EJS 渲染邮件模板
  const html = ejs.renderFile('template.ejs', { weatherData, quoteData });

  // 发送邮件
  transporter.sendMail({
    from: 'your@email.com',
    to: 'girlfriend@email.com',
    subject: '每日天气预报和每日一言',
    html
  }, (err, info) => {
    if (err) {
      console.log(err);
    } else {
      console.log('邮件已发送');
    }
  });
};

// 设置定时任务
setInterval(sendMail, 1000 * 60 * 60 * 24);

// 获取天气预报
const getWeatherData = () => {
  // 从天气预报网站获取数据
  const weatherData = {
    city: '北京',
    temperature: '25℃',
    weather: '晴'
  };

  return weatherData;
};

// 获取每日一言
const getQuoteData = () => {
  // 从每日一言网站获取数据
  const quoteData = {
    quote: '今日一言:人生最美好的事情之一就是你所爱的人也恰好爱你。',
    author: '佚名'
  };

  return quoteData;
};

3. 编写邮件模板

在项目中,我们需要创建一个新的文件,如 template.ejs

<!DOCTYPE html>
<html>
  <head>
    
  </head>
  <body>
    <h1>每日天气预报</h1>
    <p>城市:<%= weatherData.city %></p>
    <p>温度:<%= weatherData.temperature %></p>
    <p>天气:<%= weatherData.weather %></p>

    <h1>每日一言</h1>
    <p>今日一言:<%= quoteData.quote %></p>
    <p>作者:<%= quoteData.author %></p>
  </body>
</html>

4. 运行脚本

最后,我们需要运行脚本。

node index.js

脚本将每天早上 8 点定时运行,并发送一封包含天气预报和每日一言的电子邮件给女朋友。

结语

通过本文,我们了解了如何使用 Node.js 和 EJS 编写一个爬虫脚本,每天定时获取天气预报和每日一言,并发送一封包含这些信息的电子邮件给女朋友。希望本文能够帮助你用代码表达爱意,让你的爱情更加甜蜜。