(半)自动批量添加QQ好友

0X00 前言

出于营销(误:P的缘由,须要添加一些好友,手动复制 QQ 号搜索,添加,每次须要至少二三十分钟。因而有了编写自动化添加好友的想法。需求以下:php

  1. 自定义验证问题回答(必须),自定义备注,自定义加入分组(可选)
  2. 添加结果,失败,成功(可选)

0x01 分析分析

很天然想到调用第三方接口实现,上网查了一下 qqbot 却是能够实现,不幸的是 qqbot 基于 smartQQ,正好于 19 年 1 月 3 日下线了,QAQpython

没办法,咨询了下万能的淘宝,发现相似的营销软件都是经过操做 QQ 页面的方式实现,能够参考:使用教程视频集,由于须要设置分辨率,分析多是使用相似按键精灵,定位图像制做,起初感受不是很优雅git

朋友推荐一款叫作 酷安机器人 的工具,是一款腾讯受权的第三方 api 接口,能够自定义编写程序,论坛也有现成的可更改的添加好友程序,不过这款软件开始收费了,迫于贫穷做罢github

思考和分析后,总结出三种实现方式:web

  1. 按键精灵类效果,控制鼠标和键盘完成
  2. 调用第三方 api,方便快捷
  3. 控制 win32 程序实现自动操做

第一种方式实现原理很简单,但还要去学习相关按键精灵知识,也不是很喜欢这种方式,做为备选。第二种是我最青睐的方式,不过 qqbot 已挂,也买不起付费 api,加之 tx 对此监管也很严格,只能做罢,固然仅限于 pc 端,其余方式没有了解。api

那就退而求其次,控制 win32 窗口的方式实现,查找了一下,python 模块 pywinauto 能够实现编写 txt,excel 实现办公自动化,可是因为 QQ 的防修改措施,没法获取到 QQ 的句柄信息,不能进行精确操做。ide

最后选择了 pyautogui + pywinauto 混合控制 win32 程序和图像识别的方式实现,最后仍是折中了m(_ _;;msvg

0x02 开始码代码

搜索好友这里选用了两种方法:工具

  1. 经过 QQ 添加好友窗口查找添加
  2. 接口方式,tencent://AddContact/?fromId=45&fromSubId=1&subcmd=all&uin=10000&website=bbs.125.la

第二种虽然快捷,可是容易失效,虽然发送了请求,但却显示没有发送学习

核心逻辑

在这里插入图片描述

运行效果

在这里插入图片描述

0x03 总结思考

完成了没有无验证问题下好友自动添加,实际测试下添加一个好友大概须要20秒左右,其他状况也能够自动化解决,考虑到添加好友平均时间问题以及图像识别速度,就没有继续完善下去了,期待更好的解决方法

pyautogui 自动添加 QQ 好友 - https://github.com/j785786058/add_qq_friends

pyautogui 坑点 - https://blog.csdn.net/yaoliuwei1426/article/details/87933205

win32 自动发送信息 - http://www.javashuo.com/article/p-zomurqib-km.html

win32 自动登陆 QQ - https://blog.csdn.net/qq_42022255/article/details/80659848

pywinauto 简明教程 - https://gaianote.github.io/2018/06/13/pywinauto简明教程/

pywinauto 教学 - https://blog.csdn.net/shawpan/article/details/78170117

pyinstaller 简明教程 - http://legendtkl.com/2015/11/06/pyinstaller/

pyinstaller 详解 - https://yujunjiex.gitee.io/2018/10/18/PyInstaller打包详解/

pyinstaller 打包 opencv 错误 - https://blog.csdn.net/zx520113/article/details/82793312