用python來記錄和女朋友的戀愛日誌

用python來記錄和女朋友的戀愛日誌

閱讀文本大概需要 5 分鐘。

最近想到編寫一個程序每天早上自動給女朋友發送微信,內容是我倆相戀時間,每日一句以及一句早安。

用python來記錄和女朋友的戀愛日誌

前期準備

1.Python的wxpy庫,wxpy在itchat的基礎上,通過大量接口優化提升了模塊的易用性,並進行豐富的功能擴展。

wxpy庫功能很強大,比如,運行腳本時自動把日誌發送到你的微信,加群主為好友,自動拉進群中,自動陪人聊天等等,總而言之,可用來實現各種微信個人號的自動化操作。

2.Python的爬蟲基礎知識。比如,我之前寫到的requests庫的使用。

3.Python對於日期的操作。

對於wxpy庫和requests庫的安裝,都可以用pip3 install “庫名”來快速完成安裝。

1.實現相戀時間

首先設定我倆確定關係的那天作為初始時間,利用time函數獲取當前時間,通過調用datetime()庫,將兩者值相減。

datetime.date()函數可以將用戶輸入轉換為datetime類型,datetime.datetiem.now()函數可以讀取當前時間並格式化顯示。

最後將其封裝為Cal_Date()函數,對其調用會返回當前時間與設定時間之間的天數差。

def Cal_Date():
First_Day_We_Loved = datetime.datetime(2013, 10, 26)
Today = datetime.datetime.now()
The_Day_We_Loved = Today - First_Day_We_Loved
return The_Day_We_Loved.days

2.實現每日一句

本來想發送每日一笑的,但搜了一下,大家都做過,想弄點不一樣的新東西,就編寫了一個函數,爬取了金山詞霸上的每日一句,每日一句的內容主要來自電影片段,再把英文翻譯成中文。最後將其封裝為get_news()函數。

def get_news():
#獲取一個連接中的內容
url = "http://open.iciba.com/dsapi/"
r = requests.get(url)
print(r.json())
contents = r.json()['content']
translation = r.json()['translation']
return contents, translation

3.將上述函數組裝成一個主函數

這裡需要注意的是,一定要加入異常處理,我就是陷在這裡很長時間,怎麼調代碼都不行,最後網上各種搜,加入異常處理後就可以了。將所有準備發送的內容都可以添加在這個主函數中。

def send_news():
if bot == None:
login_WeChat()
try:
my_friend = bot.friends().search(u'stormwen')[0] # stormwen表示微信暱稱
weekdic = {'Mon': '星期一', 'Tue': '星期二', 'Wed': '星期三', 'Thu': '星期四', 'Fri': '星期五', 'Sat': '星期六', 'Sun': '星期日'}
date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
week = time.strftime('%a', time.localtime(time.time()))
my_friend.send('今天是' + date + ' ' + weekdic[week] +',' + '是我們相戀的第' \\
+ str(Cal_Date()) + '天。'+ '\\n ' +get_news()[0]+ '\\n' + get_news()[1][5:])
my_friend.send(u"Darling:Good morning,I love you!!")
t = Timer(86400, send_news) #86400是秒數:86400秒發送一次
t.start()
except:
print(u"失敗!")

4.運行結果展示

用python來記錄和女朋友的戀愛日誌

5.總結

今天分享的小項目非常適合零基礎學Python,學爬蟲的小夥伴,代碼簡單易懂。

這個項目可以擴展和優化的地方還有很多,比如,發送每日天氣、每日笑話等等功能,而且用函數來實現這些功能,最後一起添加到總函數中,非常簡單。大家可以先動手操作一下,後面我也會找時間,將這些功能一一分享出來。

最後,小編想說:我是一名python開發工程師,整理了一套最新的python系統學習教程,想要這些資料的可以關注私信小編“01”即可,希望能對你有所幫助


分享到:


相關文章: