每次记歌词——使用Python自动发邮件提醒你记歌词

每次记歌词——使用Python自动发邮件提醒你记歌词

有时候听到一首歌的歌词非常好听,却总是记不住,过一段时间就忘记了。为了解决这个问题,我决定使用Python编写一个自动发邮件提醒我记歌词的程序。这样,每次我听到喜欢的歌曲时,都可以及时记录下来。

1. 邮件提醒功能

首先,我需要一个可以发送邮件的功能。在Python中,我们可以使用smtplib库来实现这个功能。以下是发送邮件的代码:

import smtplib

from email.mime.text import MIMEText

def send_email(to_address, subject, content):

# 邮件设置

smtp_server = 'smtp.example.com'

smtp_port = 587

smtp_user = 'your_email@example.com'

smtp_pass = 'your_password'

# 构造邮件内容

msg = MIMEText(content)

msg['Subject'] = subject

msg['From'] = smtp_user

msg['To'] = to_address

# 发送邮件

smtp = smtplib.SMTP(smtp_server, smtp_port)

smtp.starttls()

smtp.login(smtp_user, smtp_pass)

smtp.sendmail(smtp_user, to_address, msg.as_string())

smtp.quit()

# 使用示例

to_address = "your_friend@example.com"

subject = "记歌词提醒"

content = "记起来时,就快点记录下来吧!"

send_email(to_address, subject, content)

通过上述代码,我们可以发送邮件到指定的邮箱地址。现在,我们可以开始编写记歌词的功能了。

2. 网络爬虫

要记住歌词,首先需要找到相应的歌词。在Python中,我们可以使用requests库来进行网络请求,使用BeautifulSoup库来解析HTML页面。以下是一个简单的网络爬虫代码示例:

import requests

from bs4 import BeautifulSoup

def get_lyrics(song_name):

# 使用搜索引擎进行搜索

search_url = f'https://www.google.com/search?q={song_name} 歌词'

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}

response = requests.get(search_url, headers=headers)

response.raise_for_status()

# 解析搜索结果

soup = BeautifulSoup(response.text, 'html.parser')

lyrics_div = soup.find('div', {'class': 'BNeawe iBp4i AP7Wnd'})

if lyrics_div:

lyrics = lyrics_div.get_text(separator='\n')

return lyrics

return None

# 使用示例

song_name = "Shape of You"

lyrics = get_lyrics(song_name)

if lyrics:

print(lyrics)

else:

print("找不到该歌曲的歌词")

通过上述代码,我们可以通过指定歌曲名字来获取歌词。将这部分代码与发送邮件的功能结合起来,我们就可以完成记歌词的程序了。

3. 记歌词程序

下面是一个使用定时任务和邮件提醒的记歌词程序的示例:

import schedule

import time

def job():

song_name = "Shape of You"

lyrics = get_lyrics(song_name)

if lyrics:

send_email(to_address, "记歌词提醒", lyrics)

print("已发送歌词邮件")

else:

print("找不到该歌曲的歌词")

# 设置定时任务

schedule.every().day.at("09:00").do(job)

# 循环执行任务

while True:

schedule.run_pending()

time.sleep(60) # 休眠60秒

通过上述代码,我们将记歌词的功能设定为每天早上9点执行一次。当程序执行时,它将自动搜索歌曲的歌词并发送邮件提醒我。

4. 总结

通过使用Python编写自动发邮件的功能以及网络爬虫,我们成功地实现了一个每天定时提醒记歌词的程序。现在,每当我听到一首喜欢的歌曲时,我都可以及时将歌词记录下来,再也不用担心忘记了。

这个程序可以根据个人需要进行定制,例如可以设置不同的执行时间、发送邮件的邮箱地址等。通过改变代码中的参数,可以适应不同的需求。

在实际应用时,我们需要注意保护个人信息,例如在发送邮件时,应将真实的邮箱地址和密码替换为自己的邮箱账号和密码。

后端开发标签