一 简介

wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数据统计等功能。

总而言之,可用来实现各种微信个人号的自动化操作。(官网文档:http://wxpy.readthedocs.io/zh/latest/bot.html)

安装:wxpy 支持 Python 3.4-3.6,以及 2.7 版本

二 登录微信

from wxpy import *
bot=Bot(cache_path=True) # 一个Bot 对象可被理解为一个 Web 微信客户端。cache_path 提供了缓存的选项,用于将登录信息保存下来,就不用每次都扫二维码

三 案例

 from pyecharts import Map
import webbrowser # 文档https://docs.python.org/3/library/webbrowser.html
from wxpy import *
from collections import defaultdict bot = Bot(cache_path=True)
friends = bot.friends() areas = defaultdict(lambda :0)
for item in friends:
areas[item.province] += 1 attr = areas.keys()
value = areas.values() map = Map("好友分布图", width=1400, height=700)
map.add("", attr, value, maptype='china',is_visualmap=True,is_label_show=True)
map.render('province.html')
webbrowser.open('province.html')

01.微信好友地域分布

 # 自动给指定的人回复
from wxpy import * bot = Bot(cache_path=True) # 从好友中查找名字叫:林 的人,模糊匹配,可能查出多个人,取出第0个
father = bot.search('林')[0] @bot.register() # 用于注册消息配置
def recv_send_msg(recv_msg):
print('收到的消息:', recv_msg.text) # recv_msg.text取得文本
# recv_msg.sender 就是谁给我发的消息这个人
if recv_msg.sender == father:
recv_msg.forward(bot.file_helper,prefix='老爸留言: ') # 在文件传输助手里留一份,方便自己忙完了回头查看
ms = '祝早日康复!'
return ms # 回复 embed() # 进入交互式的 Python 命令行界面,并堵塞当前线程支持使用 ipython, bpython 以及原生 python

02.自动给某人回复

 from wxpy import *
bot=Bot(cache_path=True)
# 查找群
company_group=bot.groups().search('群名字')[0]
# 查找群里的某个人
boss=company_group.search('老板名字')[0] # 只有company_group这个群发的消息,才会调用这个函数,其他的不会调用
@bot.register(chats=company_group) #接收从指定群发来的消息,发送者即recv_msg.sender为组
def recv_send_msg(recv_msg):
print('收到的消息:',recv_msg.text)
# recv_msg.sender 是群这个对象
if recv_msg.member == boss:
#这里不用recv_msg.render 因为render是群的名字
# recv_msg.forward(bot.file_helper,prefix='老板发言: ')
return '老板说的好有道理,深受启发' embed()

03.给群中某个人回复

 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,
}
# 接口要求传json格式字符串,返回数据是json格式
result= requests.post(url, data=json.dumps(payload)).json()
# result = json.loads(r.text)
return "[来自智能机器人] " + result["text"] @bot.register()
def forward_message(msg):
print(msg.tex)
return auto_reply(msg.text) embed()

04.调用图灵机器人api自动回复

参考:

1.https://www.cnblogs.com/liuqingzheng/articles/9079192.html

wxpy使用的更多相关文章

  1. wxpy: 用 Python 玩微信【转】

    转自:https://wxpy.readthedocs.io/zh/latest/index.html 微信机器人 / 可能是最优雅的微信个人号 API wxpy 在 itchat 的基础上,通过大量 ...

  2. 使用wxpy来实现自动发送消息统计微信好友信息的功能

    发送消息太频繁会出现禁言消息 1:导入wxpy模块 pip install wxpy pip3 install wxpy #二者选一 调用模块 # 导入模块 from wxpy import * # ...

  3. 使用wxpy自动发送微信消息(加强版)

    通过使用wxpy自动发送微信消息后,笔者又加强了发送消息,堪称消息爆炸式发送 目前设置的为10秒发送一次,发送9次,每次发送10条内容 import requests import wxpy from ...

  4. 使用wxpy自动发送微信消息

    思路整理:1.进入心灵鸡汤网页,使用python获取心灵鸡汤内容 2.登陆微信,找到需要发送的朋友 3.发送获取的内容 1.获取心灵鸡汤的内容 如下图,获取第一条鸡汤 实现如下: 2.登陆微信,搜索朋 ...

  5. Python3 实现(wxpy)用微信自动定时给朋友定时推广

    Python3 实现(wxpy)用微信自动定时给朋友定时推广 安装wxpy 安装微信机器人wxpy非常简单,如果你拥有pip,请直接按照Github中的方法安装: pip install wxpy 实 ...

  6. 利用wxpy进行微信信息发送详解(一)

    利用wxpy进行微信信息自动发送,简直是骚扰神器,除非拉黑你. 那我们就来设置一个场景吧,五秒发送一次,一次发送10条 首先我们来整理一下思路: ♦1.首先我们要从网上爬去我们想要发送的内容 ♦2.登 ...

  7. wxpy学习

    准备工作 安装 pip install -U wxpy -i "https://pypi.doubanio.com/simple/" 通过python脚本来发送消息给好友 from ...

  8. python利用wxpy监控微信公众号

    此次利用wxpy可以进行微信公众号的消息推送监测(代码超级简单),这样能进行实时获取链接.但是不光会抓到公众号的消息,好友的消息也会抓到(以后会完善的,毕竟现在能用了,而且做项目的微信号肯定是没有好友 ...

  9. 1、初学探讨PYTHON的itchat和wxpy两库

    最近好奇学习了python,觉得简单明了,但是最头疼的就是调整空格和调试吧,的确调试不如C#使用visual studio 方便,都是使用print()来调试.也许因为我是菜鸟,如果大家还有更好的方法 ...

随机推荐

  1. 关于ES6

    一.变量声明const和let 变量提升:在ES6之前,我们都是用var关键字声明变量.无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部).这就是函数变量提升例如: fu ...

  2. 关于【jq插件开发】

    很详细,原文链接:https://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html#commentform和https://www.cnblogs ...

  3. postgresSQL 实现数据修改后,自动更新updated_date/ts等字段

    1. 需求说明: 实现MYSQL中有on update CURRENT_TIMESTAMP 2. 需求分析 由于数据库迁移需要将MYSQL中的数据迁移到postgresSQL中,由于MYSQL中有on ...

  4. mysql 在visual studio中的配置

    视图-->其他窗口-->服务器资源管理器-->数据连接-->右键添加连接 servername:localhost username:root password:123456 ...

  5. 处理 Vue 单页面应用 SEO

    由于在vue单页应用中title只设定在入口文件index.html,如果切换路由,title怎么更换? 在路由router中设置meta: { path:'/chooseBrand', compon ...

  6. sigaction 的使用

    linux内核会发射一些信号,应用程序可以捕捉信号执行特定函数 :失败:-,设置errno act:传入参数,新的处理方式.oldact:传出参数,旧的处理方式. struct sigaction结构 ...

  7. 【C#】 List按指定字段的给出的自定义顺序进行排序

    #引言 有一个集合,对其进行排序,排序规则为:按对象中某个字段的特定顺序进行排序,比如:对象属性id,按照[4,2,5,1]的顺序排序: #代码: public class Foo { public ...

  8. vue md5

    安装 cnpm install js-md5 --save 使用 import md5 from 'js-md5' md5('要加密的内容')

  9. [C++]UVaLive7324 ASCII Addtion

    Description Nowadays, there are smartphone applications that instantly translate text and even solve ...

  10. 【bzoj 2159】Crash 的文明世界

    Description Crash小朋友最近迷上了一款游戏——文明5(Civilization V).在这个游戏中,玩家可以建立和发展自己的国家,通过外交和别的国家交流,或是通过战争征服别的国家.现在 ...