每次记歌词——使用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编写自动发邮件的功能以及网络爬虫,我们成功地实现了一个每天定时提醒记歌词的程序。现在,每当我听到一首喜欢的歌曲时,我都可以及时将歌词记录下来,再也不用担心忘记了。
这个程序可以根据个人需要进行定制,例如可以设置不同的执行时间、发送邮件的邮箱地址等。通过改变代码中的参数,可以适应不同的需求。
在实际应用时,我们需要注意保护个人信息,例如在发送邮件时,应将真实的邮箱地址和密码替换为自己的邮箱账号和密码。