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()