Python实战之520特别版:用微信每天和她说晚安

今天是传说中的520,不知你是否已经准备好要表白的话语。为了助你撩妹成功,云厉今天也学着某些人土土的教大家用Python每天给妹纸说晚安。
没错,每天!
用对了Python,每天都过520

这次真的是面向对象编程

大致思路是这样:

  1. 调接口获取每日心灵鸡汤或撩妹话术
  2. 基于wxpy模块,授权微信登录,搜索聊天对象,发送XX消息
  3. Timer每日发送
  4. 后台挂起执行脚本

安装wxpyrequests

pip3 install wxpy
pip3 install requests

其他如果没安装,也一并安装

下面发送信息脚本send_wx.py,不到40行的代码,注释不多,相信你懂!

# -*- coding: utf-8 -*-

from threading import Timer
from wxpy import *
import requests

bot = Bot(console_qr=2, cache_path='botoo.pkl') 

# 她的昵称和你的昵称。是微信昵称,不是备注哦
ta_name = '若';
my_name = '云厉';

# 从金山词霸获取每日鸡汤,英文和翻译,如果你有更好的鸡汤数据源,也可以更换
def get_message():
    url = "http://open.iciba.com/dsapi/"
    r = requests.get(url)
    contents = r.json()['content']
    translation= r.json()['translation']
    return contents, translation

# 给TA发送晚安信息
def send_message(): 
    try:
        message = get_message()
        # 搜索聊天对象,并ensure_one保证她的昵称在你的微信好友列表里只有一个
        my_love = ensure_one(bot.search(ta_name, sex=FEMALE))
        # 发送鸡汤
        my_love.send(message[0])
        my_love.send(message[1][5:])
        my_love.send(u'亲爱的,晚安!爱你~')
        # 每86400秒(1天),发送1次
        t = Timer(86400, send_message)
        t.start()
    except:
        my_self = ensure_one(bot.search(my_name, sex=MALE))
        my_self.send(u'今天撩妹消息发送失败了')

if __name__ == '__main__':
    send_message()
# 丢后台跑起来!
nohup python3 send_wx.py > send_wx.log 2>&1 &

首次运行,脚本会生成二维码,需要授权登录。这也是为什么在脚本内用Timer定时发送而不用Linux的cron,就是为了不要每次都授权登录,太麻烦!

测试一把,效果如下:

wxpy还能干啥?

  • 控制路由器、智能家居等具有开放接口的玩意儿
  • 运行脚本时自动把日志发送到你的微信
  • 加群主为好友,自动拉进群中
  • 跨号或跨群转发消息
  • 自动陪人聊天
  • 逗人玩
  • ...

总而言之,可用来实现各种微信个人号的自动化操作

如果你有兴趣,欢迎关注微信公众号:程序员到架构师,不定期更新各种各样的Python技术

Related post

微信公众号:程序员到架构师

最新文章

Return Top