Python自制微信机器人:群发消息、自动接收好友

运营公众号也有半年了,今年5月份开始的,之前一直用一款windows工具来运营自动接受好友请求、群发文章、自动回复等操作,但颇有不便。

举几个场景:

  1. 突然在外面看到一篇文章很好,临时写了一篇,想群发一下。
  2. 好友加我微信后,每次都要手动备注。

这些使用客户端工具都无法解决,因为客户端工具的一个特点就是native,需要你直接操作电脑,不方便。

所以就想着自己写一个干脆,经过一周漫长的开发(主要是时间太零散了),把第一版定制化微信机器人给完成了,第一版里实现了几个功能:

  1. 自动添加好友,并同时根据附加信息打备注。
  2. 根据不同的分组,进行群发消息。因为有些群只允许你21:00~09:00,你中午发的时候就要屏蔽他,有的群是禁止发的,那你也要屏蔽。
  3. 根据关键字回复消息、图片等。

那先来看看效果:


第一版的功能非常简陋,而且不易扩展,但解决了我的基本用途,之后这个项目我会持续根据维护。

那么接下来就来看一些核心代码:

FileHelper类定义了所有的交互式指令集合,微信官方提供了文件传输助手这个功能,我们就要用好他嘛~

那这个_register_mass函数就在做一件事情:注册群发消息。

只要指令集和群发有关,就用这个函数去注册,因为群发包括很多指令集:群发消息,群发文章,群发图片,群发语音等等。所以有了这个注册器后,之后的函数就相对简单了:

另外,为了让匹配速度更快些,我特地开了一个子线程去同步本地的群组列表,把列表维护在内存里使得速度更快些。

整个项目目录还是比较复杂的,以上只是节选了部分关键代码:

之后的话,准备把代码健硕起来,使用说明、日志等,然后功能继续迭代,比如:识别公众号URL地址自动转换成文章转发格式,自动邀请入群等。

关注公众号「Python专栏」后台回复:wxRobot,获取完整微信机器人源码。

![Python专栏二维码](https://img-blog.csdnimg.cn/20190228220401806.jpeg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIzNjU4Mjg=,size_4,color_FFFFFF,t_70#pic_center =200x200)

原文地址:https://blog.51cto.com/miracleyoung/2365631

时间: 2024-08-05 00:03:07

Python自制微信机器人:群发消息、自动接收好友的相关文章

用python自制微信机器人,定时发送天气预报

0 引言 前段时间找到了一个免费的天气预报API,费了好段时间把这个API解析并组装成自己想用的格式了,就想着如何实现每天发送天气信息给自己.最近无意中发现了wxpy库,用它来做再合适不过了.以下是wxpy库的简介: wxpy基于itchat,使用了 Web 微信的通讯协议,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展.实现了微信登录.收发消息.搜索好友.数据统计.微信公众号.微信好友.微信群基本信息获取等功能. 废话不多说,代码写起来. 1 环境 操作系统:Windows / Li

python获取微信公共平台消息列表和用户头像

转载需注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 刚写的模拟登陆的方式从获取微信公众平台消息列表和用户头像的库,之后还会继续增加相关功能,github地址https://github.com/btyh17mxy/wxwall #!/usr/bin/env python # coding: UTF-8 import json import hashlib import re import random import

PC端 Spark 二次开发 自动接收好友请求并同意

本次Spark二次开发是为了客服模块的开发, 能让用户一旦点击该客服则直接自动添加好友,而客服放则需自动添加好友,不同弹出对话框进行同意,这方便的广大客服. 现在废话不多说,直接上代码. package org.jivesoftware.spark.ui; import java.util.ArrayList; import org.jivesoftware.spark.util.log.Log; import org.jivesoftware.spark.util.ModelUtil; imp

微信机器人-定制消息

前几天,在博客里把群发微信祝福的代码手动的在这里面敲了一波,本着对自己负责的态度.自己去执行了一遍 然后,悲剧了,执行时候没有加sleep时间,一发不可收拾. 结果是,本人微信消息空前热闹,胜过这五六七八年所有消息总量;长辈们的备注名个个曝光(*^__^*) 那么,这次改走定制化路线吧,折腾单个人群,给她24h-365d轮番轰炸(这后期的需要自动化开机关机配合搞,目前只是纯微信机器人的活儿) 先说如下代码已知需要优化的地方吧: 1/时分秒如果不在设定的睡眠时间周期累加值内,直接错误对应的提示 2

微信开发之消息的接收与相应--文本消息(五)

一.消息格式 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <

微信开发之消息的接收与相应--消息交互基础(四)

一.消息交互流程 1.用户通过微信客户端向公众号发送消息,消息首先会被微信服务器接收到 2.微信服务器接收到消息后,会根据开发者在接口配置信息中填写的URL,将消息通过HTTP POST发送到公众号服务器 3.公众号服务器接收到消息后,会根据相应的逻辑进行处理 4.处理完成后,公众号服务器会将处理结果发送到微信服务器, 5.微信服务器将公众号服务器返回的消息通过公众账号发送给用户 二.消息的分类 1.请求消息  请求消息是指用户发送给公众号的消息,包括文本消息,图片消息,语音消息,视频消息,地理

使用python编写微信跳一跳的自动脚本

实现思路: 调用adb命令,截图 寻找小小人的底部中心点role(从下到上扫描,直到找到小小人相同像素的点,至于小小人像素点rgb是什么,可以使用photoshop查看) 寻找棋盘最高点top,然后寻找棋盘最右点.根据最高点与最右点,确定棋盘中心点border 计算role与border之间的直线距离,然后设置按压时间=距离*按压系数 调用adb 命令,按压屏幕 完整代码,测试机Oppo r11 #!/usr/bin/env python # -*- coding: utf-8 -*- from

httpClient实现微信公众号消息群发

1.实现功能 向关注了微信公众号的微信用户群发消息.(可以是所有的用户,也可以是提供了微信openid的微信用户集合) 2.基本步骤 前提: 已经有认证的公众号或者测试公众账号 发送消息步骤: 发送一个请求微信去获取access_token 发送一个请求去请求微信发送消息 相关微信接口的信息可以查看:http://www.cnblogs.com/0201zcr/p/5866296.html 有测试账号的申请 + 获取access_token和发送微信消息的url和相关的参数需求.各个参数的意义等

android黑科技系列——解析公众号文章消息和链接文章消息自动打开原理

一.辅助功能方案分析 关于WX的各种功能插件已经非常普遍了,而现在的插件都是依赖于Xposed框架进行的,所以个人觉得WX应该在这方便应对Xposed框架的使用防护,防止插件满天飞的现象,本文来介绍一个WX应用中接收到消息如果是文章链接就自动打开浏览的功能.这个功能可能有的人用的不是很多,但是本文秉着逆向技术学习点还是来分析这个技术! 关于微信文章链接消息自动点开的逻辑,可能有的同学第一个思路就是:用辅助功能来实现模拟点击,但是这里有个问题需要解决,就是如何得到消息内容.首先我们来看一下微信中发