用python wxpy管理微信公众号,并利用微信获取自己的开源数据。
之前了解到itchat 乃至于 wxpy时 是利用tuling聊天机器人的接口。调用接口并保存双方的问答结果可以作为自己的 问答词库 的一个 数据库累计。 这些数据可以用于自己训练。
而最近希望获取一些 语音资源 ,用于卷积神经网络的训练。。
首先wxpy是itchat的升级版,通过wxpy bot.core即可原封不动的调用itchat的指令。
可以实现的简单功能:
Python资源共享群:484031800
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 tempif 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')
如上图: 所有新回复的消息会自动创建 代码里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:returnelse:# 回复消息内容和类型return '收到消息: {} ({})'.format(msg.text, msg.type)
暂时更新到这里,以上。
用python wxpy管理微信公众号,并利用微信获取自己的开源数据。相关推荐
- 视频教程-基于python的微信公众号开发教程-微信开发
基于python的微信公众号开发教程 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信 ...
- 视频教程-微信公众号使用教程-微信开发
微信公众号使用教程 大秦电商创始人,专注网络技术的电商应用.已经出品<1小时建站><微博营销实战><PHP采集><网络招商系统> 秦子恒 ¥39.00 ...
- 微信公众号数据2019_如何制作微信公众号图文素材 微信公众号采集器好用吗
现在有很多人都会通过微信公众号来发布文章.图片,这时候就需要使用一些编辑技巧了.下面拓途数据就和大家一同来看看如何制作微信公众号图文素材,微信公众号采集器好用吗? 微信公众号图文素材 如何制作微信公众 ...
- 微信公众号数据2019_历史微信公众号排名,微信公众号新榜排名
历史微信公众号排名,微信公众号新榜排名 公众号排名优化的注意事项及细节今天给大家分享一下,作为微信公众号的排名优化对于大多数人来说都已经知道了有这个渠道的事情,其实很多的新产品及渠道出来以后有不少的人 ...
- 微信公众号开发:如何获取openId(最简单的方式)
最近的项目涉及到微信公众号的开发,必然要涉及到微信公众号的openId的获取,以及appId的获取,appId的获取很简单,但是如何才能获取到openId呢? 我找到了一种最简单的获取方法,整理如下: ...
- delphi XE关于微信公众号支付及微信零钱支付的便捷解决方案
delphi XE关于微信公众号支付及微信零钱支付的便捷解决方案 https://download.csdn.net/download/pulledup/12683611 一.需求 因为微信公众号支付 ...
- 微信公众号授权登录,获取用户信息openid(亲测有效)
需求:客户登录微信公众号进行账号注册,绑定微信openid,下次根据openid验证自动登录. 详细代码:https://download.csdn.net/download/yaya_jn/7492 ...
- 微信公众号怎么快速导出一个月的文章数据
运营微信公众号肯定要分析文章数据,该怎么一次性导出历史文章数据呢?下面我们就来看看详细的教程. 1.在电脑上登录你的微信公众号,看到这样的页面,然后一直往下拉 微信公众号怎么快速导出一个月的文章数据? ...
- 小程序 php wecahtpay,PHP 微信公众号,小程序获取支付参数。微信支付
PHP 微信公众号,小程序获取支付参数.微信支付 发布时间:2018-09-26 11:19, 浏览次数:278 , 标签: PHP 首先下载微信官方demo放入项目中 地址:https://gith ...
最新文章
- 汤家凤高等数学2020年强化笔记-第三模块-积分学
- 使用java调用Web天气服务
- 中断处理及系统调用的处理过程
- kill掉占用端口程序
- Robotium双client測试框架
- php在浏览器输入路径,关于在sublime text 3 中配置一键浏览器打开php文件,并且是在localhost 本地服务器路径下...
- Oracle用户可要顶住了:准备好大规模补丁工作!以修补多达 433 个的新安全漏洞...
- 中国的顶级黑客-小榕
- svn创建分支和合并
- HaaS506-HD1本地更新固件教程
- 快手、抖音等短视频营销模式
- 马云为何学计算机,IT大佬高考:李彦宏是状元 马云数学仅1分
- linux运维工程师 pdf下载,linux运维工程师命令.pdf
- Tasteless challenges medium WP
- java Thread的start和run方法的区别
- 航测无人机las点云数据生成DEM
- 物流快递电子面单Api接口怎么申请对接(顺丰、快递鸟、菜鸟、拼多多)
- Redis源码篇(1)——底层数据结构与对象
- 根据单选框的选择来决定下拉框的禁用与否
- 如何写好验收汇报PPT?