用python wxpy管理微信公众号并利用微信获取自己的开源数据


Posted in Python onJuly 30, 2019

之前了解到itchat 乃至于 wxpy时 是利用tuling聊天机器人的接口。调用接口并保存双方的问答结果可以作为自己的问答词库的一个数据库累计。这些数据可以用于自己训练。

而最近希望获取一些语音资源,用于卷积神经网络的训练。。

--------------------------------------------------------------------------------

首先wxpy是itchat的升级版,通过wxpy bot.core即可原封不动的调用itchat的指令。

可以实现的简单功能:

1. 调取所有微信好友的信息,包括头像,签名,地区,等信息。

# -*- coding: utf-8 -*-
"""
Created on Fri Jul 19 17:10:01 2019
 
@author: wenzhe.tian
"""
import wxpy as wp
from collections import defaultdict
import pandas as pd
from tkinter import messagebox
import os

#初始化机器人,选择缓存模式(扫码)登录
bot = wp.Bot(cache_path=True)

friend = bot.core.get_friends(update=True)[0:]
num = 0
for f in friend:
 image = bot.core.get_head_img(userName=f["UserName"]) #用 itchat.get_head_img(userName=None)来爬取好友列表的头像
 fileImage = open(str(num) + ".jpg",'wb') #将好友头像下载到本地
 fileImage.write(image)
 fileImage.close()
 num += 1

friend=pd.DataFrame(friend) 
friend.to_excel('friend.xlsx',sheet_name='Friend_Info')#所有朋友相关资料存为excel

根据上面可以做一些头像集合,或者微信好友的动态图表统计。

2.  消息回复

bot.friends().search('老九门里排第十')[0].send('[强]') #表示回复给 '老九门里排第十' 点赞符号 相当于 friends.search()

-------------------------------------------------------------------------------

然而这些不能满足一些高级的需求比如:

1.可以自动将录音,视频,图像,聊天记录等按照档案记录下来。(此处修改可操作连接图灵机器人,将提问和回答的信息记录下来。作为自己训练的原始数据集)

其中 全局参数 global temp:

temp是一个list,可以将最近的消息加入list,该消息信息是字典格式的所有消息包含的原始数据。 比如消息类型,发送人,接收人等等。

# -*- coding: utf-8 -*-
"""
Created on Fri Jul 19 13:10:01 2019

@author: wenzhe.tian
"""
import wxpy as wp
from collections import defaultdict
import pandas as pd
from tkinter import messagebox
import os

bot = wp.Bot(cache_path=True)
chats=bot.chats() # 所有开启了聊天窗口的对象
groups=bot.groups() # 所有群的对象
friends=bot.friends() # 所有好友的对象
mps=bot.mps() # 所有公众号的对象

@bot.register()

def print_messages(msg):
 print(msg.create_time,msg)
 global temp
 if msg.sender.nick_name in message.keys():
  message[msg.sender.nick_name].append(msg.raw)
 else:
  message[msg.sender.nick_name]=[]
  message[msg.sender.nick_name].append(msg.raw)
 
 path='C:\\Users\\wenzhe.tian\\Desktop\\send_mail\\wechat_infomation\\'; # 修改为希望存储聊天,推送,图片,视频,音频等信息的地址
 if os.path.exists(path+msg.sender.nick_name)==False:
  os.makedirs(path+msg.sender.nick_name)
 if msg.type=='Text':
  f = open(path+msg.sender.nick_name+'\\message.txt','a+',encoding='utf-8')
  f.read()
  f.write('\n')
  f.write(str(msg.create_time)+msg.text)
  f.close()
 else:
  print('非文字消息,已存储')
  if '.' in msg.file_name:
   msg.get_file(save_path=path+msg.sender.nick_name+'\\'+msg.file_name)
  else:
   msg.get_file(save_path=path+msg.sender.nick_name+'\\'+msg.file_name+'.txt')

              用python wxpy管理微信公众号并利用微信获取自己的开源数据 用python wxpy管理微信公众号并利用微信获取自己的开源数据                         

 如上图: 所有新回复的消息会自动创建 代码里path下的文件夹,视频,录音等非文字内容会直接下载,推送等html格式的消息会当做文字和聊天记录一同保存下来记录到message.txt里

文字可以用于训练,亦可用于词云等生成。 

2.可以管理微信公众号,比如根据对方的输入自动从调取数据回复,或者固定转发某些来源的推送。

# 定位公司群
company_group = ensure_one(bot.groups().search('公司微信群'))

# 定位老板
boss = ensure_one(company_group.search('BOSS'))

# 将老板的消息转发到文件传输助手
@bot.register(company_group)
def forward_boss_message(msg):
 if msg.member == boss:
  msg.forward(bot.file_helper, prefix='BOSS')

3. 针对某人的自动回复,此处可设定词汇和回复内容(比如html格式的推送或者链接)来实现微信公众号的一些运营。

 具体用法如下:

@ bot.register() 的括号内必须为一个对象,比如上文是一个公司的群,是从所有群中搜索名字 '公司微信群' ,我们之前定义的

groups=bot.groups() # 所有群的对象
friends=bot.friends() # 所有好友的对象
mps=bot.mps() # 所有公众号的对象

均是对象的集合,从中筛选即可,比如想要自动回复 老九门里排第十 这个人的所有text类型的消息。即

laojiu= friends.search('老九门里排第十')[0] # 这里其实默认搜索的是nickname

然后:

@bot.register([laojiu, groups], TEXT) # 此处表示对laojiu 和所有groups里的对象的text类型的消息做操作

def auto_reply(msg):
 # 如果是群聊,但没有被 @,则不回复
 if isinstance(msg.chat, Group) and not msg.is_at:
  return
 else:
  # 回复消息内容和类型
  return '收到消息: {} ({})'.format(msg.text, msg.type)

暂时更新到这里,以上。

总结

以上所述是小编给大家介绍的用python wxpy管理微信公众号并利用微信获取自己的开源数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
opencv python 2D直方图的示例代码
Jul 20 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
python仿evething的文件搜索器实例代码
May 13 Python
python卸载后再次安装遇到的问题解决
Jul 10 Python
python 实现生成均匀分布的点
Dec 05 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 Python
Python进行特征提取的示例代码
Oct 15 Python
Python实现二叉搜索树BST的方法示例
Jul 30 #Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 #Python
python3安装crypto出错及解决方法
Jul 30 #Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 #Python
Python实现性能自动化测试竟然如此简单
Jul 30 #Python
python爬虫 execjs安装配置及使用
Jul 30 #Python
python 实现识别图片上的数字
Jul 30 #Python
You might like
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
PHP类中Static方法效率测试代码
2010/10/17 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
深入理解PHP之源码目录结构与功能说明
2016/06/01 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
php链式操作的实现方式分析
2019/08/12 PHP
js获取变量
2006/08/24 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
非常棒的10款jQuery 幻灯片插件
2011/06/14 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
Vue路由history模式解决404问题的几种方法
2018/09/29 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
全局安装 Vue cli3 和 继续使用 Vue-cli2.x操作
2020/09/08 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
改进Django中的表单的简单方法
2015/07/17 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
keras中的卷积层&池化层的用法
2020/05/22 Python
python使用列表的最佳方案
2020/08/12 Python
Html5 语法与规则简要概述
2014/07/29 HTML / CSS
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
静态成员和非静态成员的区别
2012/05/12 面试题
银行员工职业规划范文
2014/01/21 职场文书
授权委托书(完整版)
2014/09/10 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
节约用水广告语60条
2019/11/14 职场文书