轉載自:python知識圈
id:PythonCricle
作者:brucepk
程式員有女朋友?
new 一個就行。Python 只要記憶體夠,想 new 多少個物件都不是問題。
由於行業環境的原因,程式員單身的確實多,這也是程式員的世紀難題。
今天,不是給大家發物件,只教大家方法。今天教大家怎麼用 Python 給心動的人每天定時發早安或者晚安。
前提條件是,你得有一個心動物件。哇,我連心動物件都沒有怎麼辦?騷年,那你還不趕緊行動,去尋找你的心動的 TA。
好了,直接進入今天的主題。
找物件環境
語言:Python3
編輯工具:Pycharm
導包
wxpy:操作微信的庫,機器人陪你嘮嗑那篇文章也用到過。
requests:用來請求標的網站。
Timer:定時器,是 Thread 的派生類,用於在指定時間後呼叫一個方法。
from wxpy import *
import requests
from threading import Timer
登入微信
Bot 物件,用於登陸和操作微信賬號,涵蓋大部分 Web 微信的功能。cache_path,設定當前會話的快取路徑,並開啟快取功能,為 None (預設) 則不開啟快取功能。開啟快取後可在短時間內避免重覆掃碼,快取失效時會重新要求登陸。設為 True 時,使用預設的快取路徑 「wxpy.pkl」。
bot = Bot(cache_path=True)
獲取陳述句
從金山詞霸每日一句介面獲取語錄,用 requests 請求 api 地址,傳回英文美句和中文翻譯。
def get_msg():
url = 'http://open.iciba.com/dsapi/' # 金山詞霸每日一句 api 連結
html = requests.get(url)
content = html.json()['content'] # 獲取每日一句英文陳述句
note = html.json()['note'] # 獲取每日一句英文的翻譯陳述句
return content, note
傳送陳述句
接下來把上面獲取的陳述句傳送給心動的人,輸入你心動的人自己的微信暱稱,註意:這裡不是你對 TA 的備註,也不是 TA 的微訊號,而是 TA 自己設定的微信暱稱。我這裡是傳送給自己的小號「機器人」。自己定義的內容可以改成你覺得合適的陳述句。我們需要每日傳送一次,用定時器設定時間為一天的秒數:86400 秒。
def send_msg():
try:
msgs = get_msg()
content = msgs[0]
note = msgs[1]
my_friend = bot.friends().search(
u'機器人')[0] # 此處是對方自己的暱稱,不是微訊號,也不是你的備註。
my_friend.send(content) # 傳送英文陳述句
my_friend.send(note) # 傳送英文翻譯
my_friend.send(u'來自 brucepk 的問候') # 自定義陳述句,根據自己情況更改
t = Timer(10, send_msg) # Timer(定時器)是 Thread 的派生類,用於在指定時間後呼叫一個方法。
t.start()
except BaseException:
my_friend = bot.friends().search(u'brucepk')[
0] # 傳送不成功,則傳送訊息給自己,提醒訊息傳送失敗
my_friend.send(u'訊息傳送失敗')
捕捉異常,如果傳送失敗的話,則傳送訊息給自己,提醒訊息傳送失敗。
執行函式
最後執行主函式,即可大功告成。
if __name__ == '__main__':
send_msg()
執行結果
這樣的話,豈不是一直都需要程式時刻都在執行?可以放在伺服器上,我上網查了下,某雲伺服器可以試用半年。好了,騷年,我只能幫你到這了,接下來,看你自己的行動了。希望單身的你儘快追到心動的 TA。
朋友會在“發現-看一看”看到你“在看”的內容