微信机器人自动发消息提醒

首先需要安装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/

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