wxpy使用
一 简介
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使用的更多相关文章
- wxpy: 用 Python 玩微信【转】
转自:https://wxpy.readthedocs.io/zh/latest/index.html 微信机器人 / 可能是最优雅的微信个人号 API wxpy 在 itchat 的基础上,通过大量 ...
- 使用wxpy来实现自动发送消息统计微信好友信息的功能
发送消息太频繁会出现禁言消息 1:导入wxpy模块 pip install wxpy pip3 install wxpy #二者选一 调用模块 # 导入模块 from wxpy import * # ...
- 使用wxpy自动发送微信消息(加强版)
通过使用wxpy自动发送微信消息后,笔者又加强了发送消息,堪称消息爆炸式发送 目前设置的为10秒发送一次,发送9次,每次发送10条内容 import requests import wxpy from ...
- 使用wxpy自动发送微信消息
思路整理:1.进入心灵鸡汤网页,使用python获取心灵鸡汤内容 2.登陆微信,找到需要发送的朋友 3.发送获取的内容 1.获取心灵鸡汤的内容 如下图,获取第一条鸡汤 实现如下: 2.登陆微信,搜索朋 ...
- Python3 实现(wxpy)用微信自动定时给朋友定时推广
Python3 实现(wxpy)用微信自动定时给朋友定时推广 安装wxpy 安装微信机器人wxpy非常简单,如果你拥有pip,请直接按照Github中的方法安装: pip install wxpy 实 ...
- 利用wxpy进行微信信息发送详解(一)
利用wxpy进行微信信息自动发送,简直是骚扰神器,除非拉黑你. 那我们就来设置一个场景吧,五秒发送一次,一次发送10条 首先我们来整理一下思路: ♦1.首先我们要从网上爬去我们想要发送的内容 ♦2.登 ...
- wxpy学习
准备工作 安装 pip install -U wxpy -i "https://pypi.doubanio.com/simple/" 通过python脚本来发送消息给好友 from ...
- python利用wxpy监控微信公众号
此次利用wxpy可以进行微信公众号的消息推送监测(代码超级简单),这样能进行实时获取链接.但是不光会抓到公众号的消息,好友的消息也会抓到(以后会完善的,毕竟现在能用了,而且做项目的微信号肯定是没有好友 ...
- 1、初学探讨PYTHON的itchat和wxpy两库
最近好奇学习了python,觉得简单明了,但是最头疼的就是调整空格和调试吧,的确调试不如C#使用visual studio 方便,都是使用print()来调试.也许因为我是菜鸟,如果大家还有更好的方法 ...
随机推荐
- Spring cloud zuul跨域(一)
项目背景:我们有web和大屏,以及移动端,需要访问微服务接口. 然而大屏时自己打开的网页,在网页中通过js调用我的webapi.出现了跨域情况. 原因:出现这个问题,是由于跨域请求有2次请求. 第一次 ...
- Flask框架(1)--基础
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...
- IDEA升级版本后界面出现变小,字体变细的问题解决
笔者在今天升级了最新版本的IDEA 2019后发现,该版本的IDEA出现了非常诡异的事情如下图: 升级版本后字体居然发生了变化(通过官方导入的我自己的settings文件)还是出现了问题. 问题解决方 ...
- Linux环境配置错误记录
1. pip install --special_version pip10. 版本. 使用命令: python -m pip install pip== 其中, -m 参数的意思是将库中的pyt ...
- Vue状态管理之Vuex
Vuex是专为Vue.js设计的状态管理模式.采用集中存储组件状态它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 1.首先让我们从一个vue的计数应用开始 ...
- LOJ#2668 书法家
题意:要在一张网格纸上画出NOI图形,使得所占格子的权值和最大. 解:暴力DP即可... 从左往右,每个字母都可以被划分成三块,且每块都可用上下两维来表示. 于是一块一块的DP.考虑如何O(1)转移. ...
- 实现select联动效果,数据从后台获取
效果如下: 当type值选择完后,amount值会自动相应填入. 1. 从后台获取数据,为一个数组,里面包含多个对象. <select id="scholarshipTypeSelec ...
- Shell中的算数运算
加法 echo $((a+b)) expr $a + $b let "a=1+2";echo $a a=;let "a+=10";echo $a echo &q ...
- netty的简单的应用例子
一.简单的聊天室程序 public class ChatClient { public static void main(String[] args) throws InterruptedExcept ...
- 同一个tomcat部署多个项目导致启动失败
内容描述在同一个tomcat部署多个打包成war包的项目导致启动失败,报错如下: 报错信息Error starting ApplicationContext. To display the condi ...