精选副业
‹ 站长专栏
站长原创 · 全文公开

微信自动化之|微信好友自动化采集,实现从 0 到 1

这篇是我本人写的,所以全文放在这里,你不用领体验卡也能读完。文末有生财原帖链接,评论区的讨论在那边。

序言:万事用AI,用好AI真的能提效,RPA已死,完全不需要了,AI能做电脑上所有的事情

把微信「通讯录」里成百上千个好友的资料(微信名 / 微信号 / 地区 / 备注 / 共同群聊 / 个性签名 / 来源 / 添加时间),一键整理成 Excel / 网页 / 数据文件。本文既教你「怎么用」,也带你看懂它「怎么造」——状态机与时序图拆解全过程。

【前言】
「微信好友采集器」是一款 Windows 桌面工具:它像真人一样看屏幕、动鼠标,自动逐个翻看你的微信好友资料并抓取下来,免去一个个点开复制的重复劳动。
本文分两大模块:
① 使用教程——面向使用者,手把手从打开到拿到结果。
② 技术揭秘——面向好奇「这种工具怎么实现」的读者,用原理图讲清「屏幕自动化 + 视觉识别」的来龙去脉。

━━━━━━━━━━━━━━━━━━━━━━━━
 模块一 · 使用教程
━━━━━━━━━━━━━━━━━━━━━━━━

⚠ 开始前必读(很重要):采集时程序会自动驱动鼠标逐个点联系人读资料,这期间你不能用电脑做别的(鼠标会被它控制)。要停请按全局热键 F9,不要去抢鼠标。

▍1. 启动方式
双击即用,无需安装环境。
· 打开程序文件夹,双击「微信好友采集器.exe」。
· 整个文件夹拷到任意 Windows 电脑都能直接跑,无需装 Python 或任何依赖。
注:首次运行会联网下载一次 OCR 识别模型(约 64MB),之后离线即可使用。

▍2. 采集步骤(5 步)
① 打开微信,切到左侧「通讯录」,把联系人列表滚动到你要采的字母分组起点(比如采 M 组就滚到第一个拼音 M 的好友;续采就滚到上次中断那位)。
② 在采集器窗口:选「分组字母」(如 M / N / O / P…)。
③ 需要的话填「终点微信号」(已知本组最后一个好友微信号时填;留空=采到下一个字母分组就自动停)。
④ 勾选「断点续采」(默认勾上:载入已采结果、去重,从定位处接着采)。
⑤ 点「▶ 开始采集」→ 倒计时后松开鼠标别动,看进度和日志即可。采完自动写出结果文件。

▍3. 界面说明

· 分组字母:采哪个拼音分组(A~Z)。每组单独输出 people-X.*(M 组不带后缀)。
· 终点微信号:可选。填了采到它就停;留空则采到下一字母分组自动停。
· 断点续采:载入已采结果并去重,从当前位置接着采,不重复入库。
· 开始倒计时:点开始后留几秒给你松手别碰鼠标。
· ▶开始 / ⏸暂停 / ■停止:控制采集(采集中鼠标被占用,用热键更稳)。
· 打开结果:打开当前分组的 people-X.html 报表。

▍4. 全局热键(采集中也能用)
· F9 :停止采集(采完当前这位后干净退出,进度已实时保存)
· F10:暂停 / 继续 切换
因为采集时程序在控制鼠标,界面按钮可能点不到,请优先用 F9 / F10。

▍5. 结果文件
· people-X.html :明亮主题报表(明细卡片 + 汇总表),浏览器打开看;存疑微信号会高亮提示人工核对。
· people-X.csv :Excel 可打开的表格(X=分组字母;M 组为 people.csv)。
· people-X.json :结构化数据(含断点,续采依据)。
· 微信好友顺序-X.txt:采集顺序表。

▍6. 常见问题 / 注意事项
· 采到一半屏幕黑了 / 锁屏?程序会自动唤醒「无密码屏保」;但带密码的锁屏解不开——请提前把「屏幕关闭时间」与「需要登录」设为「从不」。
· 弹出视频号 / 朋友圈 / 聊天窗口?程序会自动关闭并切回通讯录,无需理会。
· 个别微信号有 ⚠存疑标记?是 OCR 对小字 / 相邻同名的识别极限,HTML 里会高亮,请人工核对那几个。
· 会不会重复采?不会。按微信号 + 头像去重,断点续采也不会重复入库。
· 速度:模拟真人每个好友停 0.5~1.5 秒并偶尔长歇,降低风控;一组几百人约几十分钟。
· 合规:仅采集你自己的好友资料、本地保存。请遵守微信用户协议与隐私法规,不要外传他人信息。

━━━━━━━━━━━━━━━━━━━━━━━━
 模块二 · 技术揭秘:它是怎么做出来的
━━━━━━━━━━━━━━━━━━━━━━━━

没有调用任何微信接口、不碰数据库、不注入进程——它靠「像人一样看屏幕、动鼠标」完成采集。下面一层层讲清(图示为示意,代码为伪代码)。

▍01 技术选型:为什么是「看屏幕」,而不是调接口
做自动化,第一步是回答「从哪里拿数据」,通常三条路:
· 逆向协议:破解通信加密——门槛极高、版本一更新就失效、风险大。
· 读本地数据库:解密本地存储——同样涉及破解、随版本变动,稳定性差。
· 界面自动化(本项目选择):把软件当黑盒,像真人一样「看屏幕 + 操作鼠标键盘」。
界面自动化的核心优势是「解耦」:只依赖人眼能看到的画面,不碰目标软件内部。代价是要解决两件事——怎么定位元素(没有控件 id,只有像素)、怎么保证稳定(画面会滚动、弹窗、干扰)。
分层架构(自底向上,每层只依赖下层):
 [操作层] 驱动鼠标/键盘、截屏、滚动 (手 + 眼)
 [识别层] OCR 文字 + 模板匹配 + 几何计算 (像素 → 语义)
 [抽取层] 从识别结果配对出结构化字段 (语义 → 数据)
 [流程层] 主循环、去重、续采、异常恢复 (把数据采全)

▍02 桌面自动化层:给程序装上「手」和「眼」
问题:不同电脑分辨率不同,写死坐标换台机器就全错位。
思路:所有坐标都用「相对屏幕的百分比」表示,运行时再乘以实际屏幕宽高换算成像素。
 点击(比例x, 比例y):
  px,py = 比例x×屏幕宽, 比例y×屏幕高
  移动鼠标(px,py);发送系统级鼠标按下/抬起事件(真实事件,目标软件无法区分人或程序)
翻屏:通讯录很长,一屏只显示十几个。办法是「滚一屏 → 采一屏 → 再滚」,通过前后两屏的重叠项判断滚了多少、有没有到底。
⚠ 工程坑:系统键盘事件只能发按键码,发不了中文/特殊字符(如往搜索框输入微信号)。解法:改用 Unicode 注入逐字符发送,绕开键盘布局。

▍03 视觉识别层:让程序「读懂」屏幕(技术核心)
程序拿到的只是一张截图,要从中得到「这里有个微信号叫 xxx」「这是通讯录页」。用三种手段互相兜底:
· OCR:把像素里的文字读出来;小字/单字昵称可放大 3 倍再识别。
· 模板匹配:找图标这类没有文字的东西(通讯录图标、展开箭头、红点),多尺度滑动比对应对缩放。
· 几何兜底:当文字与图标都不可靠时,靠「头像等间距排列」的规律推算行数与行中心,回去补点/补识别。
三路冗余的意义:任何单一识别都到不了 100%,但它们的失效场景不重叠,组合起来才稳。

▍04 资料抽取:从一堆文字里「配对」出字段
问题:点开资料卡后,OCR 给一堆零散文本行,怎么知道哪行是「地区」、哪行是它的值?
思路:资料卡是「标签 : 值」的版式。按已知标签词匹配,取标签右侧/下方文本作为值,缺失留空。
 抽取资料(资料卡文字行们):
  FOR 标签 IN [微信名,微信号,地区,备注,个性签名,来源,添加时间]:
   行 = 找到含该标签的行;字段[标签] = 取标签后面的值(行存在则取,否则留空)
难点之一:「共同群聊」默认折叠,要先用模板匹配找到展开箭头、点开,才能 OCR 出群名。

▍05 采集主循环与去重
把前面的能力串起来就是主循环:看见一个 → 点开 → 抽取 → 存下 → 滚到下一个,直到该分组采完,并随时响应暂停/停止。

「暂停态」是可逆状态:靠共享标志位实现,主循环每步都检查,从而随时干净地暂停/恢复/停止。
去重的关键:稳定唯一键 + 头像指纹。翻屏时上一屏底部与下一屏顶部会重叠,同一人会被看到两次。去重优先用微信号(全局唯一);拿不到时用「昵称 + 头像感知哈希」组合——把头像缩成小灰度图算特征,两图汉明距离小于阈值即同一人。

一次采集会跨四层多次往返:识别 → 抽取 → 再识别(展开群聊)→ 去重,这就是「多手段协同」的真实复杂度。

▍06 鲁棒性:断点续采与异常恢复(最见功力)
能采是 60 分,采得稳才是 90 分。真实环境会断、会弹窗、会误判。
环境自愈:「确保就绪」本身是个小状态机——检查 → 发现异常 → 修复 → 回到检查,直到全部正常。

💡 设计哲学:自动化的稳定性 =「每一步前都先检查、不对就自愈」,而非「假设一切顺利一条道走到黑」。这个「检查↺修复」回路,是把成功率从 70% 拉到 99% 的关键。
分组边界去抖:采 M 组要在进入 N 组时停。但 NA 开头的人可能被误判成 N 组而提前停。解法:连续看到 N 个下一字母开头的人才确认越界(去抖)。

这是工程上常见的去抖(debounce)思想:单个异常信号不轻信,连续 N 次才确认——同样可用于按钮防抖、传感器读数、网络抖动判断。

▍07 GUI 与并发:界面不能卡死
问题:采集是长任务(几分钟~几十分钟),直接在界面线程里跑,窗口会「未响应」假死。
思路:采集放到工作线程,通过信号把进度安全传回界面线程刷新;界面线程只做显示。命令(停止/暂停)用共享标志位传。

⚠ 并发铁律:只有界面线程能碰界面控件。工作线程绝不能直接改进度条——必须发「信号」让界面线程去改,否则跨线程操作 UI 会崩。这是 GUI 编程的通用铁律。

▍08 这套思路还能做什么
你看到的不只是「采微信」,而是一套通用的「屏幕自动化 + 视觉识别」方法论。换掉识别目标和操作脚本,它能做很多事:
· 任何「没有 API、只能看界面」的桌面/老旧软件的数据导出与批量操作;
· UI 自动化测试、重复表单的批量填写;
· 把「OCR + 模板匹配 + 几何兜底」的多路识别思路,迁移到任何图像信息抽取场景。
核心心法:把大问题切成「能立刻跑起来看到结果」的小步——这正是高效造工具的方式。

────────────────────────────────
说明:技术部分图示为示意性原理图、代码为伪代码。本工具用于帮助用户整理、备份与导出本人微信账号中的好友资料,请在遵守微信用户协议及相关法律法规、并取得必要授权的前提下使用,请勿将采集到的信息用于骚扰、倒卖等违规用途。

社群里还有 966 篇别人的实操复盘

体验卡免费,不花一分钱3 天看遍社群近 180 天全部内容正式加入 72 小时内无理由退款
生财有术体验卡
领取体验卡的二维码

长按保存这张二维码,打开微信扫一扫,从相册选这张图即可添加;电脑上直接用微信扫码。

我写的这些免费读。体验卡免费领,3 天内可以查阅社群近 180 天的全部内容。
站长专栏的其他文章
书情
ChatGPT 封号记录不在如何办?手把手教你如何保存你的聊天记录
2026-06-05 · 约 312 字
读全文
书情
利用AI大模型,一键生成高清短视频实测
2026-05-31 · 约 265 字
读全文
书情
YouTube Shorts数据采集器使用说明:下载、授权及找爆款实操分享
2026-04-12 · 约 469 字
读全文