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

简介: 用python wxpy管理微信公众号,并利用微信获取自己的开源数据。之前了解到itchat 乃至于 wxpy时 是利用tuling聊天机器人的接口。调用接口并保存双方的问答结果可以作为自己的问答词库的一个数据库累计。

用python wxpy管理微信公众号,并利用微信获取自己的开源数据。
之前了解到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
复制代码
根据上面可以做一些头像集合,或者微信好友的动态图表统计。

  1. 消息回复

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')

复制代码

如上图: 所有新回复的消息会自动创建 代码里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)

复制代码
暂时更新到这里,以上。
原文地址https://www.cnblogs.com/techs-wenzhe/p/11264012.html

相关文章
|
4月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
2814 1
|
4月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
593 0
|
4月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
5月前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
5月前
|
数据采集 关系型数据库 MySQL
python爬取数据存入数据库
Python爬虫结合Scrapy与SQLAlchemy,实现高效数据采集并存入MySQL/PostgreSQL/SQLite。通过ORM映射、连接池优化与批量提交,支持百万级数据高速写入,具备良好的可扩展性与稳定性。
|
5月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
5月前
|
数据采集 数据可视化 关系型数据库
基于python大数据的电影数据可视化分析系统
电影分析与可视化平台顺应电影产业数字化趋势,整合大数据处理、人工智能与Web技术,实现电影数据的采集、分析与可视化展示。平台支持票房、评分、观众行为等多维度分析,助力行业洞察与决策,同时提供互动界面,增强观众对电影文化的理解。技术上依托Python、MySQL、Flask、HTML等构建,融合数据采集与AI分析,提升电影行业的数据应用能力。
|
5月前
|
消息中间件 人工智能 Java
抖音微信爆款小游戏大全:免费休闲/竞技/益智/PHP+Java全筏开源开发
本文基于2025年最新行业数据,深入解析抖音/微信爆款小游戏的开发逻辑,重点讲解PHP+Java双引擎架构实战,涵盖技术选型、架构设计、性能优化与开源生态,提供完整开源工具链,助力开发者从理论到落地打造高留存、高并发的小游戏产品。
|
5月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。

推荐镜像

更多