歡迎光臨
每天分享高質量文章

你還單身?Python 教你脫單

轉載自: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。

    已同步到看一看
    赞(0)

    分享創造快樂