微信小机器人 wxpy模块,自动化发送消息

 1. 扫码登录微信

from wxpy import *
# bot = Bot()   # 每次运行都要扫二维码
bot = Bot(cache_path=True)  # 加上参数 表示缓存, 不用每次都要去登录了

2. 发送消息

bot.file_helper.send("hello") # file_helper 是微信的文件传输助手, 给文件传输助手发送一条消息,可以在手机端收到如下的消息

3. 接受消息  # 我们实现一个收到消息自动回复的功能。

@bot.register()
def print_message(msg1):
    print(msg1.text)
    return msg1.text
embed()  # 这个必须加上



# 回复发送给自己的消息,可以使用这个方法来进行测试机器人而不影响到他人
#@bot.register(bot.self, except_self=False)
#def reply_self(msg):
#   return 'received: {} ({})'.format(msg.text, msg.type)

4、 搜索好友及微信群   # 我们来实现一个搜索公司群、定位老板并转发老板消息的功能

company_group = bot.groups().search('baby')[0]
boss = company_group.search('好友备注名称')[0]
# 将老板的消息转发到文件传输助手
@bot.register(company_group)
def forward_boss_message(msg):
    if msg.member == boss:
        msg.forward(bot.file_helper, prefix='老板发言')
# 堵塞线程
embed()

5、发送好友信息

def send_msgs():
    try:
        my_friend = bot.friends().search('微信备注')[0]  # 微信备注
        my_friend.send("哈哈哈")
        #
    except:
        my_friend = bot.friends().search('好友自己的昵称')[0]  # 好友自己的昵称
        my_friend.send("嘻嘻嘻")
send_msgs()

6、 统计性别分布的代码如下

friends_stat = bot.friends().stats()
print(friends_stat)
for sex, count in friends_stat["sex"].items():
    # 1代表MALE, 2代表FEMALE
    if sex == 1:
        print("MALE %d" % count)
    elif sex == 2:
        print("FEMALE %d" % count)
    else:
        # sex == 0  表示显示不出性别
        print("显示不出性别 %d" %count)

7、统计好友的地理位置,并打印出人数最多的10个地区

# friends_stat = bot.friends().stats()
friend_loc = []  # 每一个元素是一个二元列表,分别存储地区和人数信息
for province, count in friends_stat["province"].items():
    if province != "":
        friend_loc.append([province, count])
# 对人数倒序排序
friend_loc.sort(key=lambda x: x[1], reverse=True)
print(friend_loc)
# # 打印人数最多的10个地区
for item in friend_loc[:10]:
    print(item[0], item[1])

8、send 发送信息

# 发送文本
my_friend.send('Hello, WeChat!')
# 发送图片
my_friend.send_image('my_picture.png')
# 发送视频
my_friend.send_video('my_video.mov')
# 发送文件
my_friend.send_file('my_file.zip')
# 以动态的方式发送图片
my_friend.send('@img@my_picture.png')

9、 这个是借鉴大佬的代码,想看的小伙伴可以学习一下,艺不压身

# coding:utf-8  
import json
import requests
from wxpy import *
#bot = Bot()
#bot.file_helper.send_image('ParticleSmoke.png')
 
# 回复 my_friend 发送的消息
#@bot.register(my_friend)
#def reply_my_friend(msg):
#    return 'received: {} ({})'.format(msg.text, msg.type)
 
# 回复发送给自己的消息,可以使用这个方法来进行测试机器人而不影响到他人
#@bot.register(bot.self, except_self=False)
#def reply_self(msg):
#   return 'received: {} ({})'.format(msg.text, msg.type)
 
# 打印出所有群聊中@自己的文本消息,并自动回复相同内容
# 这条注册消息是我们构建群聊机器人的基础
#@bot.register(Group, TEXT)
#def print_group_msg(msg):
#    if msg.is_at:
#        print(msg)
#        msg.reply(meg.text)
 
def auto_ai(text):
    url = "http://www.tuling123.com/openapi/api"
    api_key="****"
    payload={
        "key":api_key,
        "info":text,
        "userid":"666"
        }
    r = requests.post(url,data=json.dumps(payload))
    result = json.loads(r.content)
    if ('url' in result.keys()):
        return "[九日AI]  "+result["text"]+result["url"]
    else:
        return "[九日AI]  "+result["text"]
 
 
bot = Bot(cache_path=True)#登录缓存
#bot.file_helper.send('[奸笑][奸笑]')
print('九日AI已经启动')
 
 
boring_group1 = bot.groups().search('✪ω✪妹子会有的')[0]
@bot.register(boring_group1)
def group_message(msg):
    print('[接收]'+str(msg))
    if (msg.type!='Text'):
        ret = '[奸笑][奸笑]'
    else:
        ret = auto_ai(msg.text)
    print('[发送]'+str(ret))
    return ret
 
@bot.register(chats = [Friend])
def forward_message(msg):
    print('[接收]'+str(msg))
    if (msg.type!='Text'):
        ret = '[奸笑][奸笑]'
    else:
        ret = auto_ai(msg.text)
    print('[发送]'+str(ret))
    return ret
 
embed()
 
 

 

你可能感兴趣的:(微信小机器人 wxpy模块,自动化发送消息)