教你用Python创建微信聊天机器人

最近研究微信API,发现个非常好用的python库:wxpy。wxpy基于itchat,使用了 Web 微信的通讯协议,实现了微信登录、收发消息、搜索好友、数据统计等功能。

这里我们就来介绍一下这个库,并在最后实现一个聊天机器人。

有没有很兴奋?有没有很期待?

好了,接下来,开始我们的正题。

准备工作

安装非常简单,从官方源下载安装

pip install -U wxpy

或者从豆瓣源安装

pip install -U wxpy -i "https://pypi.doubanio.com/simple/"

模块初探

安装完成后,我们来试下几个基本的功能

1. 扫码登录微信

from wxpy import *
bot = Bot()

运行上面的程序,会弹出二维码,用手机微信扫一扫即可实现登录。
但上面的程序有一个缺点,每次运行都要扫二维码。不过wxpy非常贴心地提供了缓存的选项,如下

bot = Bot(cache_path=True)

这样把登录信息保存下来,就不用每次都扫二维码了。

2. 发送消息

bot.file_helper.send("hello")

这里的file_helper就是微信的文件传输助手,我们给文件传输助手发送一条消息,可以在手机端收到如下的消息

3. 接受消息

我们实现一个收到消息自动回复的功能。

@bot.register()
def print_message(msg):
 print(msg.text)
 return msg.text

# 进入Python命令行,让程序保持运行
embed()

强哥打开自己的公众号管理平台,在后端向自己发送消息,就可以收到如下的消息回复

4. 搜索好友及微信群

我们来实现一个搜索公司群、定位老板并转发老板消息的功能

from wxpy import *

bot = Bot(cache_path=True)

# 定位公司群
company_group = bot.groups().search('公司微信群')[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()

对于老板喜欢在群里面喊话的同学来说,这是一个福音,以后再也不用担心错失老板的重要信息了~~

数据统计

wxpy的好友统计功能非常好用,可以很方便地统计好友的地理位置分布和性别分布。

下面的代码中,强哥统计了下自己的好友的分布情况,并打印出人数最多的10个地区。

from wxpy import *
bot = Bot(cache_path=True)
friends_stat = bot.friends().stats()

friend_loc = [] # 每一个元素是一个二元列表,分别存储地区和人数信息
for province, count in friends_stat["province"].iteritems():
 if province != "":
 friend_loc.append([province, count])

# 对人数倒序排序
friend_loc.sort(key=lambda x: x[1], reverse=True)

# 打印人数最多的10个地区
for item in friend_loc[:10]:
 print item[0], item[1]

统计出来的地区分布数据画成图表如下

强哥身在上海,大多数的好友也来自上海,上面的图表也如实地反应了这一情况。

统计性别分布的代码如下

for sex, count in friends_stat["sex"].iteritems():
 # 1代表MALE, 2代表FEMALE
 if sex == 1:
 print "MALE %d" % count
 elif sex == 2:
 print "FEMALE %d" % count

把性别分布的数据生成图表如下

可以看到好友中男性占了大多数。男性朋友多多,老婆放心多多,嗯~~

聊天机器人

有了上面功能简介部分的基础,我们来实现一个聊天机器人。

聊天机器人基于图灵机器人。图灵机器人可以在图灵机器人-中文语境下智能度最高的机器人大脑注册账号,并创建机器人。

# -*- coding: utf-8 -*-
import json
import requests
from wxpy import *

# 调用图灵机器人API,发送消息并获得机器人的回复
def auto_reply(text):
 url = "http://www.tuling123.com/openapi/api"
 api_key = "你的api key"
 payload = {
 "key": api_key,
 "info": text,
 "userid": "123456"
 }
 r = requests.post(url, data=json.dumps(payload))
 result = json.loads(r.content)
 return "[tuling] " + result["text"]

bot = Bot(console_qr=True, cache_path=True)

@bot.register(mp)
def forward_message(msg):
 return auto_reply(msg.text)

embed()

运行上面的程序,发送消息给自己,可以看到如下的对话

机器人太逗了,上来就要红包,还把我当男朋友了~

附录

wxpy文档:http://wxpy.readthedocs.io/zh/latest/
github地址:https://github.com/youfou/wxpy/blob/master/docs/index.rst

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • python使用itchat库实现微信机器人(好友聊天、群聊天)
  • 快速实现基于Python的微信聊天机器人示例代码
  • python基于itchat实现微信群消息同步机器人
  • python机器人行走步数问题的解决
  • python实现机器人行走效果
  • Python使用Tkinter实现机器人走迷宫
  • 基于Python如何使用AIML搭建聊天机器人
  • 使用Python的Tornado框架实现一个简单的WebQQ机器人
  • 采用python实现简单QQ单用户机器人的方法
(0)

相关推荐

  • Python使用Tkinter实现机器人走迷宫

    这本是课程的一个作业研究搜索算法,当时研究了一下Tkinter,然后写了个很简单的机器人走迷宫的界面,并且使用了各种搜索算法来进行搜索,如下图: 使用A*寻找最优路径: 由于时间关系,不分析了,我自己贴代码吧.希望对一些也要用Tkinter的人有帮助. from Tkinter import * from random import * import time import numpy as np import util class Directions: NORTH = 'North' SOU

  • python使用itchat库实现微信机器人(好友聊天、群聊天)

    itchat是一个开源的微信个人号接口,可以使用该库进行微信网页版中的所有操作,比如:所有好友.添加好友.拉好友群聊.微信机器人等等.详细用户请看文档介绍,在这里. 本文主要使用该库完成一个能够处理微信消息的的图灵机器人,包括好友聊天.群聊天. 1.itchat库的安装 pip install itchat 安装完成后运行以下代码,会出现出现一张二维码,扫码登陆之后将会登陆微信网页. 2.登陆 import itchat # 登陆 itchat.auto_login() # 可设置hotRelo

  • 采用python实现简单QQ单用户机器人的方法

    采用python实现简单QQ单用户机器人的方法如下: 一.首先我们查看一下关于3GQQ的相关协议:     对此,打开一个支持WAP的浏览器,可以使用Firefox的wmlbrowser插件,打开FF后,访问地址 https://addons.mozilla.org/zh-CN/firefox/search/?q=wmlbrowser&cat=all&x=17&y=11    二.进入3GQQ的进行协议分析     3GQQ的地址是:http://pt.3g.qq.com/s?ai

  • python实现机器人行走效果

    本文实例为大家分享了python实现机器人行走效果的具体代码,供大家参考,具体内容如下 #! /usr/bin/env python3 # -*- coding: utf-8 -*- # fileName : robot_path.py # author : zoujiameng@aliyun.com.cn # 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. # 例如,当k为18时,

  • 使用Python的Tornado框架实现一个简单的WebQQ机器人

    我打算将WebQQ单独出来运行, 一开始直接拷贝了pyxmpp2的mainloop, 但是跑起来问题多多, 所以我又研究了利用Tornado进行网络编程(这里), 所以我放弃了Pyxmpp2的mainloop,使用Tornado进行重写 首先放出项目代码 引子 WebQQ协议是一套基于HTTP的QQ协议, 而用Python的urllib2库进行请求太慢, 因为HTTP本身就使用socket请求, 所以改用多路复用I/O模型, 而Tornado简单高效, 看过代码后可以轻松上手.平台兼容性很好,

  • python基于itchat实现微信群消息同步机器人

    最近 全栈数据工程师养成攻略 的微信群已经将近500人,开了二群之后为了打通不同微信群之间的消息,花了点时间做了个消息同步机器人,在任意群收到消息时同步到其他群,并且将聊天内容上传至数据库,以供进一步分析.统计和展示. 基本思路是,用 Python 模拟微信登陆,接收到群里消息后,对文本.图片.分享等各类消息类型分别处理,并转发至其他群. 前期准备 首先得有一个微信号,用于代码模拟登陆.由于我的微信号得自己留着用,现阶段注册微信又必须要手机号,于是只好特意办了个电信号,用来申请了一个新的微信,微

  • 快速实现基于Python的微信聊天机器人示例代码

    最近听说一个很好玩的图灵机器人api,正好可以用它做一个微信聊天机器人,下面是实现 # test.py import requests import itchat #这是一个用于微信回复的库 KEY = '8edce3ce905a4c1dbb965e6b35c3834d' #这个key可以直接拿来用 # 向api发送请求 def get_response(msg): apiUrl = 'http://www.tuling123.com/openapi/api' data = { 'key' :

  • python机器人行走步数问题的解决

    本文实例为大家分享了python机器人行走步数问题,供大家参考,具体内容如下 #! /usr/bin/env python3 # -*- coding: utf-8 -*- # fileName : robot_path.py # author : zoujiameng@aliyun.com.cn # 地上有一个m行和n列的方格.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子. # 例如,当k为18时,机器人能够

  • 基于Python如何使用AIML搭建聊天机器人

    借助 Python 的 AIML 包,我们很容易实现人工智能聊天机器人.AIML,全名为Artificial Intelligence Markup Language(人工智能标记语言),是一种创建自然语言软件代理的XML语言,是由Richard Wallace和世界各地的自由软件社区在1995年至2002年发明的. AIML 是什么? AIML由Richard Wallace发明.他设计了一个名为 A.L.I.C.E. (Artificial Linguistics Internet Comp

  • 教你用Python创建微信聊天机器人

    最近研究微信API,发现个非常好用的python库:wxpy.wxpy基于itchat,使用了 Web 微信的通讯协议,实现了微信登录.收发消息.搜索好友.数据统计等功能. 这里我们就来介绍一下这个库,并在最后实现一个聊天机器人. 有没有很兴奋?有没有很期待? 好了,接下来,开始我们的正题. 准备工作 安装非常简单,从官方源下载安装 pip install -U wxpy 或者从豆瓣源安装 pip install -U wxpy -i "https://pypi.doubanio.com/sim

  • 使用python接入微信聊天机器人

    本文实例为大家分享了python接入微信聊天机器人的具体代码,供大家参考,具体内容如下 1.安装库wxpy: pip install -U wxpy or pip install -U wxpy -i https://pypi.doubanio.com/simple/ 2.简单操作上手: from wxpy import * bot = Bot(cache_path=True) #扫码登录验证 friends_stat = bot.friends().stats() friend_loc = [

  • 手把手教你使用Python创建微信机器人

    微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话: 因为是微信机器人系列的第一篇文章,所以猪哥会特别详细的讲解每一地方,尽量使每一位想学习的同学都能顺顺利利的开始,下面就让我们一起来做些有趣的事吧! 一.项目介绍 1.微信库选择 python关于开发微信的库主要有itchat和wxpy,而wxpy底层是调用的itchat,所以如果你只是要使用的话建议使用wxpy库,它比

  • python实现向微信用户发送每日一句 python实现微信聊天机器人

    分享几个Python针对微信的小工具,供大家参考,具体内容如下 用Python实现向微信用户发送每日一句 # -*- coding:utf-8 -*- from __future__ import unicode_literals from threading import Timer from wxpy import * import requests #bot = Bot() #bot = Bot(console_qr=2,cache_path="botoo.pkl")#这里的二维

  • 使用图灵api创建微信聊天机器人

    需要准备的资源: 图灵机器人账号 微信公共账号 点击访问 图灵机器人官网,快快注册,拥有自己的聊天机器人,可以在这里先体验一下 今天主要简述微信公共平台聊天机器人的搭建,首先需要注册微信公共账号,之后在图灵机器人网站上登录你的图灵账号,可以看到如截图所示的界面,在"机器人设定"界面可以进行机器人昵称.年龄.性别等信息的设定,在"机器人调教"界面可以教你的机器人回答特定问题,"知识库"可以导入知识库,增加你的机器人的能力~~~ 红色圈起来的部分是需

  • 16行Python代码实现微信聊天机器人并自动智能回复功能

    目录 一.效果 二.项目思路 三.代码分析 1.安装和导入模块 2.申请图灵机器人 3.实现机器人功能 4.实现微信功能 5.弹出二维码及循环程序 在我们的生活和工作当中,很多时候我们并不能及时地回复消息,尤其是业务比较多的人,客户给我们发消息我们不回又不好,但又没有那么多精力时时回复,这个时候智能机器人就能帮助我们解决很多问题. 像电商类的客服,像大的QQ群/微信群管理员,以及我们打游戏的时候,挂着脚本就行,机器人自动帮你回消息,一时半会儿不会得罪女朋友,哈哈哈! 今天就来教大家一招,16行P

  • python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)

    最近想着做一个微信机器人,主要想要实现能够每天定时推送天气预报或励志语录,励志语录要每天有自动更新,定时或当有好友回复时,能够随机推送不同的内容.于是开始了分析思路.博主是采用了多线程群发,因为微信对频繁发送消息过快还会出现发送失败的问题,因此还要加入time.sleep(1),当然时间根据自身情况自己定咯.本想把接入写诗机器人,想想自己的渣电脑于是便放弃了,感兴趣的可以尝试一下.做完会有不少收获希望对你有帮助. (1)我们要找个每天定时更新天气预报的网站,和一个更新励志语录的网站.当然如果你想

  • 基于python的itchat库实现微信聊天机器人(推荐)

    一.开始之前必须安装itchat库 pip install itchat(使用pip必须在电脑的环境变量中添加Python的路径) 或 conda install request 二.开始编程前,我们需要在图灵机器人官网注册自己的图灵机器人,来实现我们程序的智能聊天功能 1.图灵机器人官网(http://www.turingapi.com/) 2.注册登录后点击创建机器人 3.创建成功后,可以获得机器人提供的API接口(apikey) 三.代码实现 import itchat import re

  • Python使用20行代码实现微信聊天机器人

    近来,打开微信群发消息,就会秒收到一些活跃分子的回复,有的时候感觉对方回答很在理,但是有的时候发现对方的回答其实是驴唇不对马嘴,仔细深究发现,原来对方是机器人.今天,小编就带大家用20行代码,带你一起打造一个微信聊天机器人,让你的微信群一直嗨不停~~ 首先我们需要安装一个微信相关的第三方库,itchat,在Windows上通过命令:pip install itchat,就可以将其安装. 其二,我们需要去图灵机器人官网:http://www.tuling123.com,注册一下,即可获得一个机器人

随机推荐