微信機器人自動發消息提醒

首先需要安裝wechat_sender.

pip install wechat-sender
pip install wxpy
itchat
requests

創建一個send_msg.py文件並寫入:

from wxpy import *
from wechat_sender import *
bot = Bot(console_qr=1,cache_path=False)
name='Breakout'
my = bot.friends().search(name)[0]
print(my)
listen(bot, my, status_report=True, status_receiver=my)

這裏的name是我自己的微信名字。這裏你可以替換成你自己的。
然後運行python send_msg.py 這個時候需要微信掃碼登錄微信網頁版。

剩下就是你要發送的信息了。wechat_sender這個是可以接入log的。但是這個我們想做成每天自動給女友發信息。我們就可以這樣做。

from wechat_sender import Sender,listen
import requests
import datetime
import random
def sendEnglish():
    headers = {"User-Agent":'Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36'}
    response = requests.get("http://open.iciba.com/dsapi/", headers=headers)
    data = response.json()
    voice = data['tts']
    english = data['content']
    chinese = data['note']
    picture = data['fenxiang_img']

    nowTime =  datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    res = "現在時間是{},一起學一句英文吧^_^\n".format(nowTime)
    res += "英文:{}\n翻譯:{}\n音頻地址:{} \n分享圖片:{}\n".format(english, chinese, voice, picture)
    return res
now = datetime.datetime.now()
hour, minute = now.hour, now.minute
name="sender"  # 要發送的人
if hour == 8 and minute <20:
    res = sendEnglish()
    Sender().send_to(res,name)

主要是調用Sender().send_to()在send_to裏面傳入信息即可。你可以根據其他情況去動態的修改這些。然後我們做一個crontab 設置成定時任務。比如:
這裏我用的是虛擬環境,你可以根據你的python路徑和send_english進行存放。

*/20 * * * 1-5 /home/wenjia/.local/share/virtualenvs/wechatSend-OGmbR6v7/bin/python /home/wenjia/wechatSend/send_english.py 

當然你可以動態的創建crontab. 參考:

其實說白了很簡單,就是新建一個文件 。然後把計算任務 寫進去。執行完了或者有修改的地方就刪除它。然後再crontab 執行下而已
1.添加:echo "1 * * * * /home/test" >> /user/crontabfile
2.刪除:sed -i '/test/d'  /user/crontabfile
3.然後 crontab /user/crontabfile 就行了.

需要注意的是,如果你已經有crontab在運行了。就是你之前是通過crontab -e 的方式創建的。你創建了一個新的文件是會覆蓋之前的!!!

後續我會做自動增加提醒,查看提醒列表的功能。

更多的使用參考:

https://wechat-sender.readthedocs.io/zh_CN/latest/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章