返回顶部

自动化发送微信

环境配置

这里需要用到第三方库pillow, wxpy,requests,可以直接通过pip命令安装

  • pillow:在终端中显示登陆二维码,需要安装 pillow 模块
  • wxpy:实例化机器人对象
  • requests:用户抓取网页数据

金山词霸开放api

这里使用金山词霸开放api 入口
金山词霸每日一句,数据格式为json

{
"content":"I love the broken sound in my body and the healingprocess.",
"note":"\u6211\u559c\u6b22\u6211\u8eab\u4f53\u7834\u788e\u7684\u58f0\u97f3\u548c\u4e0d\u65ad\u6108\u5408\u7684\u8fc7\u7a0b\u3002",
"fenxiang_img":"http:\/\/cdn.iciba.com\/web\/news\/longweibo\/imag\/2018-08-14.jpg"
}

也可以使用其他接口获取数据,但是一般这种开放接口每天都会有最大访问次数。

源码

from threading import Timer
from wxpy import *
import requests

class Wechat:
    receiver = ''  # 为接受者的微信昵称
    second_receiver = ''  # 第二接受者的昵称
    def __init__(self, receiver, second_receiver):
        self.receiver = receiver
        self.second_receiver = second_receiver

    def get_news(self):
        url = "http://open.iciba.com/dsapi/"  # 调用金山词霸每日一句开放接口
        r = requests.get(url)  # 获取网页数据,数据格式为json
        content = r.json()['content']
        note = r.json()['note']
        fenxiang_img = r.json()['fenxiang_img']
        return content, note, fenxiang_img

    def send_news(self):
        bot = Bot()  # 实例化机器人对象
        try:
            content = self.get_news()  # 获取发送消息内容
            my_friend = bot.friends().search(self.receiver)[0]  # 将第一个昵称为receiver的微信好友作为消息接受者
            my_friend.send(contents[0])  # 发送每日一句的content
            my_friend.send(contents[1])  # 发送note
            my_friend.send(contents[2])  # 发送图片
            # 每86400秒(1天),发送1次
            t = Timer(86400, self.send_news)
            t.start()
        except:
            my_friend = bot.friends().search(self.second_receiver)[0]  # 如果第一个接受者发送失败,则发送给第二个
            my_friend.send(u"今天消息发送失败了")  # 发送提示错误消息

if __name__ == '__main__':
    wechat = Wechat('xxx', ‘xxx’)
    wechat.send_news()

posted on 2018-08-14 19:23  weilanhanf  阅读(605)  评论(0编辑  收藏  举报

导航