python实现微信聊天机器人_用python玩微信,实现聊天机器人,新手必学
1.用 Python 实现微信好友性别及位置信息统计
这里使用的python3+wxpy库+Anaconda(Spyder)开发。如果你想对wxpy有更深的了解请查看:wxpy: 用 Python 玩微信
# -*- coding: utf-8 -*-
"""
微信好友性别及位置信息
这里要注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教!
#导入模块
from wxpy import Bot
'''Q
微信机器人登录有3种模式,
(1)极简模式:robot = Bot()
(2)终端模式:robot = Bot(console_qr=True)
(3)缓存模式(可保持登录状态):robot = Bot(cache_path=True)
'''
#初始化机器人,选择缓存模式(扫码)登录
robot = Bot(cache_path=True)
#获取好友信息
robot.chats()
#robot.mps()#获取微信公众号信息
#获取好友的统计信息
Friends = robot.friends()
print(Friends.stats_text())
复制代码
效果图(来自笔主盆友圈):
2.用 Python 实现聊天机器人
这里使用的python3+wxpy库+Anaconda(Spyder)开发。需要提前去图灵官网创建一个属于自己的机器人然后得到apikey。
使用图灵机器人自动与指定好友聊天
让室友帮忙测试发现发送表情发送文字还能回应,但是发送图片可能不会回复,猜应该是我们申请的图灵机器人是最初级的没有加图片识别功能。
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 13 19:09:05 2018
@author: Snailclimb
@description使用图灵机器人自动与指定好友聊天
"""
from wxpy import Bot,Tuling,embed,ensure_one
bot = Bot()
my_friend = ensure_one(bot.search('郑凯')) #想和机器人聊天的好友的备注
tuling = Tuling(api_key='你申请的apikey')
@bot.register(my_friend) # 使用图灵机器人自动与指定好友聊天
def reply_my_friend(msg):
tuling.do_reply(msg)
embed()
复制代码
使用图灵机器人群聊
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 13 18:55:04 2018
@author: Administrator
"""
from wxpy import Bot,Tuling,embed
bot = Bot(cache_path=True)
my_group = bot.groups().search('群聊名称')[0] # 记得把名字改成想用机器人的群
tuling = Tuling(api_key='你申请的apikey') # 一定要添加,不然实现不了
@bot.register(my_group, except_self=False) # 使用图灵机器人自动在指定群聊天
def reply_my_friend(msg):
print(tuling.do_reply(msg))
embed()
复制代码
3.用 Python分析朋友圈好友性别分布(图标展示)
这里没有使用wxpy而是换成了Itchat操作微信,itchat只需要2行代码就可以登录微信。如果你想详细了解itchat,请查看: itchat入门进阶教程以及 itchat github项目地址 另外就是需要用到python的一个画图功能非常强大的第三方库:matplotlib。 如果你想对matplotlib有更深的了解请查看我的博文:Python第三方库matplotlib(词云)入门与进阶
# -*- coding: utf-8 -*-
"""
Created on Tue Mar 13 17:09:26 2018
@author: Snalclimb
@description 微信好友性别比例
"""
import itchat
import matplotlib.pyplot as plt
from collections import Counter
itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)
sexs = list(map(lambda x: x['Sex'], friends[1:]))
counts = list(map(lambda x: x[1], Counter(sexs).items()))
labels = ['Male','FeMale', 'Unknown']
colors = ['red', 'yellowgreen', 'lightskyblue']
plt.figure(figsize=(8, 5), dpi=80)
plt.axes(aspect=1)
plt.pie(counts, # 性别统计结果
labels=labels, # 性别展示标签
colors=colors, # 饼图区域配色
labeldistance=1.1, # 标签距离圆点距离
autopct='%3.1f%%', # 饼图区域文本格式
shadow=False, # 饼图是否显示阴影
startangle=90, # 饼图起始角度
pctdistance=0.6 # 饼图区域文本距离圆点距离
)
plt.legend(loc='upper right',)
plt.title('%s的微信好友性别组成' % friends[0]['NickName'])
plt.show()
复制代码
效果图(来自笔主盆友圈):
4.用 Python分析朋友圈好友的签名
需要用到的第三方库:
numpy:本例结合wordcloud使用
PIL: 对图像进行处理(本例与wordcloud结合使用)
wordcloud:生成词云 matplotlib:绘制2D图形
# -*- coding: utf-8 -*-
"""
朋友圈朋友签名的词云生成以及
签名情感分析
"""
import re,jieba,itchat
import jieba.analyse
import numpy as np
from PIL import Image
from snownlp import SnowNLP
from wordcloud import WordCloud
import matplotlib.pyplot as plt
itchat.auto_login(hotReload=True)
friends = itchat.get_friends(update=True)
def analyseSignature(friends):
signatures = ''
emotions = []
for friend in friends:
signature = friend['Signature']
if(signature != None):
signature = signature.strip().replace('span', '').replace('class', '').replace('emoji', '')
signature = re.sub(r'1f(\d.+)','',signature)
if(len(signature)>0):
nlp = SnowNLP(signature)
emotions.append(nlp.sentiments)
signatures += ' '.join(jieba.analyse.extract_tags(signature,5))
with open('signatures.txt','wt',encoding='utf-8') as file:
file.write(signatures)
# 朋友圈朋友签名的词云相关属性设置
back_coloring = np.array(Image.open('alice_color.png'))
wordcloud = WordCloud(
font_path='simfang.ttf',
background_color="white",
max_words=1200,
mask=back_coloring,
max_font_size=75,
random_state=45,
width=1250,
height=1000,
margin=15
)
#生成朋友圈朋友签名的词云
wordcloud.generate(signatures)
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
wordcloud.to_file('signatures.jpg')#保存到本地文件
# Signature Emotional Judgment
count_good = len(list(filter(lambda x:x>0.66,emotions)))#正面积极
count_normal = len(list(filter(lambda x:x>=0.33 and x<=0.66,emotions)))#中性
count_bad = len(list(filter(lambda x:x<0.33,emotions)))#负面消极
labels = [u'负面消极',u'中性',u'正面积极']
values = (count_bad,count_normal,count_good)
plt.rcParams['font.sans-serif'] = ['simHei']
plt.rcParams['axes.unicode_minus'] = False
plt.xlabel(u'情感判断')#x轴
plt.ylabel(u'频数')#y轴
plt.xticks(range(3),labels)
plt.legend(loc='upper right',)
plt.bar(range(3), values, color = 'rgb')
plt.title(u'%s的微信好友签名信息情感分析' % friends[0]['NickName'])
plt.show()
analyseSignature(friends)
复制代码
效果图(来自笔主盆友圈):
最后注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教!
本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
python实现微信聊天机器人_用python玩微信,实现聊天机器人,新手必学相关推荐
- 微信小程序_调用openAi搭建虚拟伙伴聊天
微信小程序_调用openAi搭建虚拟伙伴聊天 背景 效果 关于账号注册 接口实现 8行python搞定 小程序实现 页面结构 数据逻辑 结束 背景 从2022年的年底,网上都是chagpt的传说,个人 ...
- python基础知识整理-整理了27个新手必学的Python基础知识点
原标题:整理了27个新手必学的Python基础知识点 1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd +x a.py ./a.py #修改a.py文件的 ...
- python3.8.5怎么用-Python 3.8 新功能大揭秘【新手必学】
最新版本的Python发布了!今年夏天,Python 3.8发布beta版本,在2019年10月14日,第一个正式版本已准备就绪.现在,我们都可以开始使用新功能并从最新改进中受益. Python 3. ...
- python桌面翻译_Python实现桌面翻译工具【新手必学】
Python 用了好长一段时间了,起初是基于对爬虫的兴趣而接触到的.随着不断的深入,慢慢的转了其它语言,毕竟工作机会真的太少了.很多技能长时间不去用,就会出现遗忘,也就有了整理一下,供初学者学习和讨论 ...
- 费纸箱手工制作机器人_废纸板制作机器人玩具,好玩还省钱!做亲子手工必学...
原标题:废纸板制作机器人玩具,好玩还省钱!做亲子手工必学 废纸板相信每个朋友家里都会有很多,而这些东西通常在家里都会占据一些空间.而对于家中有小朋友的家庭来说陪小朋友一起制作手工可以说是经常做的一件事 ...
- 用python创建微信机器人_用Python创建微信机器人
原标题:用Python创建微信机器人 文/裸睡的猪哥 图片来源于网络 微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地.今天我们要讲的便是如何用Python来做一 ...
- 用python写聊天机器人_用Python 写一个机器人陪你聊天(文尾有彩蛋)
工作一忙,原来秉烛夜谈的好友现在都很少聊天,微信都成了微信群的天下,鲜有微信好友给你发消息,想要主动发却也找不到开题话题,怎么办?用Python写一个机器人陪自己聊聊天吧.以下是源码及解析,小白都看得 ...
- python编程控制机器人_基于Python开发的微信图灵机器人
在过去的几个月中,由于在新生群中回答问题费时费力,同时又有许多重复而又有固定答案的回答,我受到一些知乎文章的启发,维护了一个基于itchat的群聊机器人.从刚开始接入图灵机器人时只会尬聊的机器人,之后 ...
- 公众号python接入机器人_使用python实现小机器人自动回复可扩展开发微信公众号的小机器人...
api来之图灵机器人.我们都知道微信公众号可以有自动回复,我们先用python脚本编写一个简单的自动回复的脚本,利用图灵机器人的api. http://www.tuling123.com/help/h ...
- python利用微信的方法_用Python玩转微信
Python玩转微信 大家每天都在用微信,有没有想过用python来控制我们的微信,不多说,直接上干货! 这个是在 itchat上做的封装 http://itchat.readthedocs.io ...
最新文章
- Redis 笔记(05)— hash 类型(设置获取单个hash值、判断hash键是否存在、设置获取多个hash值、获取所有hash的键、获取所有hash的值、删除hash指定键)
- c++ 的重载、覆盖、隐藏
- jquery validate 详解二
- Http访问代理使用
- VMware排错:Number of virtual devices exceeds the maximum for a given controller
- mkl gt;=2018
- 【Unity3D】Tags和Layers
- volatile 关键字是如何保证可见性的?
- 光纤中继器的防雷及日常维护方法介绍
- C++内存管理(1)
- 数据库系统工程师考c语言吗,2019年数据库系统工程师考点:DBMS的基本功能
- 机器学习(十四)Libsvm学习笔记
- 二分+BFS——刺杀大使(洛谷 P1902)
- CnBlogs自定义博客样式
- 又是AI+IoT!谷歌试图收购物联网公司Xively
- 操作系统(秋招整理)
- 阵列信号处理笔记-阵列信号处理基础
- go语言两个json对比
- 10年建模师给想学次世代游戏建模同学的一些忠告,太受益了!
- Idm在B站没有显示下载按钮
热门文章
- 服务器 多显卡 显示器,一台主机接多个显示器,居然有三种方法实现,提高工作效率的神器...
- python程序流程控制_Python流程控制语句详解
- 6 款免费网络延迟测试工具-从事网络行业必备
- 如何删除剽悍的应用软件
- 北漂四年,25K,程序员,我依然单身!
- HDU4622- Reincarnation(后缀自动机)
- 那些大厂 HR 是怎么筛选简历的?
- HTML中abbr标记,HTML abbr标记
- lr0文法分析表示例_LR(0)文法项目集规范族、DFA和分析表的构建实例
- C# 五步完成Bmp文件流到AVI的转换