python实现微信自动回复机器人
一 简单介绍
wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数据统计等功能。
总而言之,可用来实现各种微信个人号的自动化操作。(http://wxpy.readthedocs.io/zh/latest/bot.html)
安装:wxpy 支持 Python 3.4-3.6,以及 2.7 版本
pip3 install -U wxpy
安装 pillow模块
pip3 install pillow
安装 pyecharts模块
pip3 install pyecharts
二 登录微信
1 、 扫码登录微信
from wxpy import * bot = Bot()
2、cache_path=True
运行上面的程序,会弹出二维码,用手机微信扫一扫即可实现登录。
但上面的程序有一个缺点,每次运行都要扫二维码。不过wxpy非常贴心地提供了缓存的选项,用于将登录信息保存下来,就不用每次都扫二维码,如下
bot = Bot(cache_path=True) # 必须先登录过一次以后才可以使用缓存
三 微信好友男女比例占比展示
from wxpy import *
from pyecharts import Pie
import webbrowser
bot=Bot(cache_path=True) #注意手机确认登录 friends=bot.friends()
#拿到所有朋友对象,放到列表里
attr=['男朋友','女朋友','未知性别']
value=[0,0,0]
for friend in friends:
if friend.sex == 1: # 等于1代表男性
value[0]+=1
elif friend.sex == 2: #等于2代表女性
value[1]+=1
else:
value[2]+=1 pie = Pie("朋友男女比例")
pie.add("", attr, value, is_label_show=True)
#图表名称str,属性名称list,属性所对应的值list,is_label_show是否现在标签
pie.render('sex.html')#生成html页面
# 打开浏览器
webbrowser.open("sex.html")
四 微信好友地域分布
显示中国地图,需要装中国地图模块:
全球国家地图: echarts-countries-pypkg (1.9MB): 世界地图和 213 个国家,包括中国地图
中国省级地图: echarts-china-provinces-pypkg (730KB):23 个省,5 个自治区
中国市级地图: echarts-china-cities-pypkg (3.8MB):370 个中国城市
中国县区级地图: echarts-china-counties-pypkg (4.1MB):2882 个中国县·区
中国区域地图: echarts-china-misc-pypkg (148KB):11 个中国区域地图,比如华南、华北。
特别注明,中国地图在 echarts-countries-pypkg 里。需要这些地图的朋友,可以装 pip 命令行:
$ pip3 install echarts-countries-pypkg
$ pip3 install echarts-china-provinces-pypkg
$ pip3 install echarts-china-cities-pypkg
$ pip3 install echarts-china-counties-pypkg
$ pip3 install echarts-china-misc-pypkg
from wxpy import *
from pyecharts import Map
import webbrowser
bot=Bot(cache_path=True) friends=bot.friends() area_dic={}#定义一个字典,用来存放省市以及省市人数
for friend in friends:
if friend.province not in area_dic:
area_dic[friend.province]=1
else:
area_dic[friend.province]+=1 attr = area_dic.keys()
value = area_dic.values() map = Map("好朋友们的地域分布", width=1200, height=600)
map.add(
"好友地域分布",
attr,
value,
maptype='china',
is_visualmap=True, #结合体VisualMap )
#is_visualmap -> bool 是否使用视觉映射组件
#
map.render('area.html') webbrowser.open("area.html")
五 微信聊天机器人
1、为微信传输助手传送消息
这里的file_helper就是微信的文件传输助手,我们给文件传输助手发送一条消息,可以在手机端的文件传输助手中收到括号内的消息
bot.file_helper.send('lqz say hello')
2、收发消息@bot.register()
from wxpy import *
bot=Bot(cache_path=True) @bot.register()
def recv_send_msg(recv_msg):
print('收到的消息:',recv_msg.text) # recv_msg.text取得文本
return '自动回复:%s' %recv_msg.text # 进入Python命令行,让程序保持运行
embed()
3、自动给老婆回复信息
当你在网吧吃着鸡,操作骚出天际时,你老婆打电话让你回家吃饭,此时你怎么办。。
from wxpy import *
bot=Bot(cache_path=True) girl_friend=bot.search('刘刘刘')[0]
print(girl_friend) @bot.register() # 接收从指定好友发来的消息,发送者即recv_msg.sender为指定好友girl_friend
def recv_send_msg(recv_msg):
print('收到的消息:',recv_msg.text) # recv_msg.text取得文本
if recv_msg.sender == girl_friend:
recv_msg.forward(bot.file_helper,prefix='老婆留言: ') #在文件传输助手里留一份,方便自己忙完了回头查看
ms='老婆最美丽,我对老婆的爱如滔滔江水,连绵不绝'
print('>>>给老婆回复的:', ms)
return ms#给老婆回一份 embed()
4、从微信群里定位好友之拍老板马屁
from wxpy import *
bot=Bot(cache_path=True) company_group=bot.groups().search('群名字')[0] boss=company_group.search('老板名字')[0] @bot.register(chats=company_group) #接收从指定群发来的消息,发送者即recv_msg.sender为组
def recv_send_msg(recv_msg):
print('收到的消息:',recv_msg.text)
if recv_msg.member == boss:
#这里不用recv_msg.render 因为render是群的名字
recv_msg.forward(bot.file_helper,prefix='老板发言: ')
return '老板说的好有道理,深受启发' embed()
5、聊天机器人
给所有人自动回复
import json
import requests
from wxpy import *
bot = Bot(cache_path=True) # 调用图灵机器人API,发送消息并获得机器人的回复
def auto_reply(text):
url = "http://www.tuling123.com/openapi/api"
api_key = "9df516a74fc443769b233b01e8536a42"
payload = {
"key": api_key,
"info": text,
}
r = requests.post(url, data=json.dumps(payload))
result = json.loads(r.content)
return "[来自智能机器人] " + result["text"] @bot.register()
def forward_message(msg):
return auto_reply(msg.text) embed()
给指定的群回复
import json
import requests
from wxpy import *
bot = Bot(cache_path=False) group=bot.groups().search('群名字')[0]
print(group) # 调用图灵机器人API,发送消息并获得机器人的回复
def auto_reply(text):
url = "http://www.tuling123.com/openapi/api"
api_key = "9d602fe417464cd18beb2083d064bee6"
payload = {
"key": api_key,
"info": text,
}
r = requests.post(url, data=json.dumps(payload))
result = json.loads(r.content)
return "[来自智能机器人] " + result["text"] @bot.register(chats=group)
def forward_message(msg):
return auto_reply(msg.text) embed()
给指定的人回复
import requests
from wxpy import *
bot = Bot( cache_path=True) girl_friend=bot.search('名字r')[0] # 调用图灵机器人API,发送消息并获得机器人的回复
def auto_reply(text):
url = "http://www.tuling123.com/openapi/api"
api_key = "申请图灵机器人获取key值放到这里"
payload = {
"key": api_key,
"info": text,
}
r = requests.post(url, data=json.dumps(payload))
result = json.loads(r.content)
return "[微信测试,请忽略] " + result["text"] @bot.register()
def forward_message(msg):
if msg.sender == girl_friend:
return auto_reply(msg.text) embed()
python实现微信自动回复机器人的更多相关文章
- python_库学习_02_微信自动回复机器人
一.python发展的趋势日益庞大,微信也有对应的库itchat.这次的实例做做成可在任意电脑运行的微信自动回复机器人exe.文件. 二.完成这个小应用我们需要装一些库,, itchat:这个东东不出 ...
- python 实现微信自动回复(自动聊天)
原文地址(本人):https://blog.csdn.net/a5878989/article/details/54974249 介绍 微信自动回复其实主要就是登录,接收消息,回复消息三个功能,微信没 ...
- 10分钟教你用Python实现微信自动回复
01 前言&&效果展示 相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息.但微信又不能像QQ一样设置自动回复.无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把 ...
- python 使微信自动回复
https://zhuanlan.zhihu.com/p/308999073 今天是鄙人的生日,欢luo过后想写点关于itchat的文章~ (不小心暴露年龄了,是的,我已经16岁了~~) 言归正传,这 ...
- 10分钟教你用Python打造微信天气预报机器人
01 前言 最近武汉的天气越来越恶劣了.动不动就下雨,所以,拥有一款好的天气预报工具,对于我们大学生来说,还真是挺重要的了.好了,自己动手,丰衣足食,我们来用Python打造一个天气预报的微信机器人吧 ...
- wordpress 插件 之 微信自动回复机器人
微信目前越来越火,wordpress 也拥有众多用户 那我们来写个插件,把两者连起来吧! 目前已经测试完成,下面把相关的信息分享一下. 查看演示 请加我微信公众号 创新实验室,或直接扫描最底下的二维码 ...
- 【Python撩妹合集】微信聊天机器人,推送天气早报、睡前故事、精美图片分享
福利时间,福利时间,福利时间 如果你还在为不知道怎么撩妹而烦恼,不知道怎么勾搭小仙女而困惑,又或者不知道怎么讨女朋友欢心而长吁短叹. 那么不要犹豫徘徊,往下看.接下来我会分享怎么使用 Python 实 ...
- Python之微信-微信机器人
一 简介 二 登录微信 三 微信好友男女比例 四 微信好友地域分布 五 微信聊天机器人 一 简介 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行 ...
- C#-MVC开发微信应用(5)--自动应答系统-自动回复机器人
前几篇已经介绍菜单和有回复信息操作,下面我们就结合snf微信端管理页面,看一下什么才是自动应答系统. 定制的服务 对于微信服务号来说,最主要的功能是提供更好的服务.用户更方便的操作,以及更快的反馈响应 ...
随机推荐
- window服务器上mongodb的安装与如何将mongodb设置为服务,为mongodb设置管理用户,mongodb连接字符串配置
最近公司有一个项目模块让用nosql-mongodb替换了,故,对mongodb做了一点研究,然后分享一下! 1.首先说一下安装时的坑 下载mongodb,如果你从官网下载,将会是一件很慢的事情,在公 ...
- vue权威指南笔记01——样式的设置
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- jquery常用表单操作
//js将表单序列化成对象 $.fn.serializeObject = function () { var $els = $(this).find("[name]"); var ...
- MySQL8.0——Resource Group(资源组)
资源组介绍 简介 MySQL是单进程多线程的程序,MySQL线程包括后台线程(Master Thread.IO Thread.Purge Thread等),以及用户线程.在8.0之前,所有线程的优先级 ...
- windows10不能获取有效IP的问题
最近我的windows10系统一直不能有效获取IP地址(无论有线还是无线),但手工设置IP后又能正常上网,所以怀疑是某个服务未启动的原因. 查了一下百度,发现还真是,现将解决方案记录如下: 1.打开系 ...
- Linux 小知识翻译 - 「Linux和CPU的兼容性」
Linux刚开始是作为可运行在 Intel 的 「i386」CPU上,与POSIX兼容的内核来开发的. 而现在主流的Linux是指能在所谓「PC」上运行的内核.「PC」是指采用「IA(intel架构) ...
- win10 文件扩展名的更改
win10 文件扩展名的改 随便打开一个文件夹,最好是"此电脑", 第二行是 " 文件 - 计算机 - 查看 " 在查看里面就可以更改了 ...
- POJ1419 Graph Coloring
嘟嘟嘟 求无向图的最大独立集. 有这么一回事:最大独立集=补图的最大团. 所谓的最大团,就是一个子图,满足图中任意两点都有边. 然后ssy巨佬告诉了我一个很没有道理强的做法:随机. 每一次random ...
- api接口简短实力
无参数传递 public function actionJiekou(){ $url = 'http://wap.guoshihui.com/_static/wap/video/startVideo. ...
- oracle 索引的几种方式
一.查询索引的高度 select index_name,blevel,leaf_blocks,num_rows,distinct_keys,clustering_factorfrom user_ind ...