Python 实现功能 --- 微信机器人

Python 微信机器人

1、安装支持
# wxpy
# pyecharts
# Pillow
# echarts-china-*
# echarts-cities-*
# echarts-countries-*
# 以上软件包都要进行安装,名称变成蓝色表示安装成功
2、微信登录
# 安装 wxpy 包

# 初始化微信登录  导入微信机器人包
import wxpy
wxpy.Bot()

# 建立登录缓存,完成二维码登录, cache_path建立wxpy.pkl缓存文件
wxpy.Bot(cache_path=True)

print("登录成功")
print("即将退出程序")

# 保持微信登录状态
wxpy.embed()
3、机器人对象
# 将wxpy中所有变量进行导入
from wxpy import *
bot = Bot(cache_path=True)
# 返回值为登录该账号的用户
print(bot)

# 所有好友
friends = bot.friends()
# print(friends)

# 所有群组
groups = bot.groups()

# 自己
_self = friends[0]
print(_self)

# 性别
#_self.sex
print(_self.sex)

# 省份
# _self.province
print(_self.province)

# 指定分组
# 指定好友,指定分组都不能排除重名情况,所以search的结果为list类型
# 通常只有指定的第一个好友|分组,那么就是结果list的第0位

# 好友查询
bot.friends().search("好友名")[0]

# 群组查询
bot.groups().search("群组名")[0]

# 文件助手
bot.file_helper.send("给文件助手的信息回复")

# 保持登录状态
# embed()
4、注册装饰器
# 注册好友回复
@bot.register()
def friend_reply(msg):
    # 信息内容
    # msg.text
    # 发送者
    # msg.sender.name
    return "回复的信息"

# 注册群回复
@bot.register(chats=bot.groups().search("群组名")[0])
def group_reply(msg):
    # 判断消息是不是老板发送的
    if msg.member.name == "群员名":
        return "1"

指定好友自动回复

from wxpy import *
bot = Bot(cache_path=True)

frinend = bot.friends().search("Ranga")[0]

@bot.register()
def abc(msg):
    name = msg.sender.name
    print(name + ":" + msg.text)
    print(msg.sender.name, frinend.name)
    if name == frinend.name:
        # 回复
        return "自动回复: 您好! 有事请发红包"

embed()
5、性别分析
# 创建一个扇图对象
pie = pyecharts.Pie("性别统计")

# 添加数据:根据性别对数据进行分析
pie.add("性别统计",["男性","女性","其他"],[man,woman,other])

# 渲染html文件
pie.render("性别统计.html")

应用

from wxpy import *
from pyecharts import Pie
import webbrowser

bot = Bot(cache_path=True)
# 拿到所有的好友
friends = bot.friends()
# 统计每一个性别好友的个数
male = 0
female = 0
other = 0
# 好友个数
print("好友个数:", friends.__len__())
# 通过迭代器变量,判断性别,统计数据
for f in friends:
    if f.sex == 1:
        male += 1
    elif f.sex == 2:
        female += 1
    else:
        other += 1

# 设置扇图对象
pie = Pie("性别比例")
# 添加数据
pie.add("性别比例", ["野兽", "美女", "哇塞"], [male, female, other])
# 将对象渲染成可视化的html文件
pie.render("性别分析.html")
# 自动打开默认浏览器显示页面
webbrowser.open("性别分析.html")
6、区域分析
# 创建一个地图对象
map = pyecharts.Map("地域分布")
# 添加数据(是否使用视觉映射组件)
map.add("地域分布",mapdic.keys(),mapdic.values(),is_visualmap=True)
# 生成html文件
map.render("地域分布.html")

应用

from wxpy import *
from pyecharts import Map
import webbrowser

bot = Bot(cache_path=True)
# 拿到所有的好友
friends = bot.friends()

# 分析好友的地理位置(省份)
mapdic = {}
for f in friends:
    # 拿到省份
    province = f.province
    # 数据字典中有没有改省份了
    if f.province in mapdic:
        # 有了,原数据基础上+1
        mapdic[f.province] += 1
    else:
        # 没有,设置一个这样的key,且设置初始值为1
        mapdic[f.province] = 1

# 创建一个地图对象
map = Map("地域分布")
# 添加数据(是否使用视觉映射组件)
map.add("地域分布",mapdic.keys(),mapdic.values(),is_visualmap=True)
# 生成html文件
map.render("地域分布.html")

webbrowser.open("地域分布.html")
7、设置图灵机器人回复
import json
import requests

def getmsg(t):
    url = "http://openapi.tuling123.com/openapi/api?key=e2cce407c9684150bc733622f0b40150&info=" + t
    # url 信息要先进行注册申请
    # 请求接口 获取返回的内容
    response = requests.get(url)
    # 使用json模块将字符串转换为字典方便取值
    dic = json.loads(response.content.decode("utf-8"))
    return dic["text"]

@bot.register()
def receive(msg):
    if msg.sender == bot.friends().search("指定好友名")[0]:
        return getmsg(msg.text)

应用

from wxpy import *
import requests
import json

bot = Bot(cache_path=True)
friend = bot.friends().search("Ranga")[0]

def getmsg(t):
    url = "http://openapi.tuling123.com/openapi/api?key=e2cce407c9684150bc733622f0b40150&info=" + t
    # 请求接口 获取返回的内容
    response = requests.get(url)
    # 使用json模块将字符串转换为字典方便取值
    dic = json.loads(response.content.decode("utf-8"))
    # 机器人信息
    print(dic["text"])
    return dic["text"]

@bot.register()
def receive(msg):
    # 好友信息
    print(msg.text)
    if msg.sender == friend:
        return getmsg(msg.text)
embed()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值