每次記歌詞——使用Python自動發(fā)郵件提醒你記歌詞
回復(fù)“書籍”即可獲贈Python從入門到進階共10本電子書
大家好,我是Python進階者。
前言
前幾天在Python交流群里邊,【冫馬讠成】大佬分享了一個有趣的代碼,用于定時發(fā)送歌詞到郵箱,覺得挺有意思,這里拿出來給大家分享。

實現(xiàn)思路
實現(xiàn)思路倒是不難,其一是Python網(wǎng)絡(luò)爬蟲,將網(wǎng)頁上的歌詞信息抓取到,然后存起來到一個變量中,其二是編寫發(fā)送郵件的邏輯,編輯好郵寄模板,然后將抓到的內(nèi)容發(fā)送出去即可,定時任務(wù)可以使用Windows自帶的任務(wù)計劃程序?qū)崿F(xiàn)。
實現(xiàn)過程
這里直接上代碼,如下所示:
import?json,?random
import?requests
import?parsel
import?smtplib
import?schedule
import?time
from?bs4?import?BeautifulSoup
from?email.mime.text?import?MIMEText
from?email.header?import?Header
# account = input('請輸入你的郵箱:')
# password = input('請輸入郵箱授權(quán)碼:')
# receiver = input('請輸入收件人的郵箱:')
account?=?'{0}'.format('請輸入你的郵箱:')
password?=?'{0}'.format('請輸入郵箱授權(quán)碼:')
receiver?=?'{0}'.format('請輸入收件人的郵箱:')
def?recipe_spider():
????headers?=?{
????????'Cookie':?'kw_token=6A3S4588YMS',
????????'csrf':?'6A3S4588YMS'
????}
????url?=?'http://www.kuwo.cn/api/www/bang/bang/musicList?bangId=93&pn=1&rn=30'
????resp?=?requests.get(url,?headers=headers)
????text?=?resp.text
????text_dict?=?json.loads(text)
????musicList?=?text_dict['data']['musicList']
????music_list?=?[]
????dit?=?{}
????for?music?in?musicList:
????????#?rid
????????dit['musicrid']?=?music['musicrid'].split('_')[1]
????????dit['name']?=?music['name']
????????music_list.append(dit.copy())
????#?print(music_list)
????list_num=[]
????for?i?in?range(30):
????????music_num?=?music_list[i]['musicrid']
????????list_num.append(music_num)
????#?print(list_num)
????a?=?random.choice(list_num)
????url1?=?str('http://www.kuwo.cn/play_detail/'+a)
????html_data?=?requests.get(url?=?url1).text????#??數(shù)據(jù)請求成功
????sel?=?parsel.Selector(html_data)??#?\n??\n????<...'>
????name?=?sel.xpath('//*[@class="song_name?flex_c"]/span/text()').get().strip()??#?歌名
????lyric?=?sel.xpath('//*[@id="lyric"]/div/p/text()').getall()
????lyric1?=?'\n'.join(lyric)
????return?lyric1
def?send_email(lyric1):
????global?account,password,receiver
????mailhost?=?'smtp.qq.com'
????qqmail?=?smtplib.SMTP_SSL(mailhost,465)
????#?qqmail.connect(mailhost,465)
????qqmail.login(account,password)
????content?=?'親愛的,今天歌名是:'+lyric1
????message?=?MIMEText(content,?'plain',?'utf-8')
????subject?=?'今天聽什么(附歌詞)'
????message['Subject']?=?Header(subject,?'utf-8')
????try:
????????qqmail.sendmail(account,?receiver,?message.as_string())
????????print('郵件發(fā)送成功')
????except:
????????print('郵件發(fā)送失敗')
????qqmail.quit()
def?job():
????print('開始一次任務(wù)')
????lyric1?=?recipe_spider()
????send_email(lyric1)
????print('任務(wù)完成')
if?__name__?==?'__main__':
????job()
你只需要輸入你的郵箱,郵箱授權(quán)碼和對應(yīng)的收件人即可。如果不知道郵箱授權(quán)碼怎么配置的話,請參考這篇文章,有詳細的配置過程,這里不再贅述。
代碼運行之后,用戶就可以收到你發(fā)送的郵件了,如下所示。

你也可以定時給自己發(fā),使用定時任務(wù)工具,做個定時任務(wù),每天提醒自己,看看歌詞啥的,看的歌詞多了,這樣在歌詞大賽中也許能拿個好名次呢!
針對定時任務(wù),也可以在windows本地中的任務(wù)計劃程序工具欄添加定時任務(wù),如下圖所示:依次點擊【電腦】-->【管理】-->【創(chuàng)建定時任務(wù)】-->【創(chuàng)建新任務(wù)】

根據(jù)提示選擇需要定時的時間和任務(wù)程序即可,教程網(wǎng)上大把,這里不再贅述。
總結(jié)
大家好,我是Python進階者。這篇文章主要基于Python網(wǎng)絡(luò)爬蟲和Python自動化辦公中的郵件發(fā)送知識,實現(xiàn)歌詞自動發(fā)送郵件的小項目。
最后感謝【冫馬讠成】大佬的代碼分享,也歡迎大家積極嘗試,有好的內(nèi)容也可以分享給我噢!

小伙伴們,快快用實踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請在后臺回復(fù)【入群】
萬水千山總是情,點個【在看】行不行
/今日留言主題/
隨便說一兩句吧~~
