前言
emmm,最近一个舍友要换qq号,就面临要转移好友的问题。于是用了冲了个QQ超级会员,打算用好友克隆功能,结果不知道什么情况克隆失败了,再克隆只能下个月。能不能批量添加qq好友,这个问题应运而生。我就直接先下结论,这个问题没有完全解决。
获取好友列表
前往https://qun.qq.com/member.html登录,然后F12打开控制台,在NetWork中就可以获取。更加具体可以前往下面我附加的参考地址,我就不重复了.(卖萌)
进行好友批量添加
这里用到的语言是python,原因就是用起来方便一些吧。(pyautogui是真的太强了!)
from pyperclip import copy
from time import sleep
import pyautogui
def AddFriend(qq_num,nickname):
sleep(1)
#修改为自己的路径
findit=pyautogui.locateOnScreen(r'C:\Users\Desktop\Script\find.png')
sleep(1)
pyautogui.click(findit.left-20,findit.top+findit.height/2)
sleep(0.5)
copy(qq_num)
pyautogui.hotkey('ctrl','a')
sleep(0.5)
pyautogui.hotkey('ctrl','v')
sleep(0.5)
pyautogui.press('enter')
sleep(2)
add3=pyautogui.locateOnScreen(r'C:\Users\Desktop\Script\Add3.png')
sleep(1)
if add3!=None:
pyautogui.click(add3.left+add3.width/2,add3.top+add3.height/2)
sleep(1)
a=pyautogui.locateOnScreen(r'C:\Users\Desktop\Script\input.png')
sleep(1)
if a!=None:
sleep(0.5)
pyautogui.click(a.left+a.width/2,a.top+a.height/2)
copy('TryAlice')
sleep(0.5)
pyautogui.hotkey('ctrl','v')
sleep(0.5)
#pyautogui.press('enter')
b=pyautogui.locateOnScreen(r'C:\Users\Desktop\Script\next.png')
sleep(1)
pyautogui.click(b.left+b.width/2,b.top+b.height/2)
sleep(1)
sleep(1)
c=pyautogui.locateOnScreen(r'C:\Users\Desktop\Script\nickname.png')
if c!=None:
pyautogui.click(c.left+c.width/2,c.top+c.height/2)
sleep(1)
copy(nickname)
pyautogui.hotkey('ctrl','v')
sleep(0.5)
pyautogui.press('enter')
# 滑块验证
sleep(2)
pyautogui.press('enter')
added=pyautogui.locateOnScreen(r'C:\Users\Desktop\Script\cancel.png')
sleep(1)
if(added!=None):
pyautogui.click(added.left+added.width/2,added.top+added.height/2)
sleep(2)
else:
print("出错了!找不到nickname")
d=pyautogui.locateOnScreen(r'C:\Users\Desktop\Script\GB.png')
sleep(1)
if d!=None:
pyautogui.click(d.left+d.width/2,d.top+d.height/2)
sleep(1)
else:
print("关闭出错了,需人工操作")
sleep(2)
#d=pyautogui.locateOnScreen(r'C:\Users\Desktop\Script\close.png')
#if d!=None:
# pyautogui.click(d.left+d.width/2,d.top+d.height/2)
else:
print("QQ搜素无法添加")
f=open(r'C:\Users\Futurex\Desktop\Script\list.txt',encoding = "utf-8")
lines=f.readlines()
f.close()
sleep(5)
addf=pyautogui.locateOnScreen(r'C:\Users\Futurex\Desktop\Script\Add.png')
sleep(1)
if(addf==None):
print("未找到添加按钮!")
else:
pyautogui.click(addf.left+addf.width-10,addf.top+addf.height/2)
sleep(1)
add2=pyautogui.locateOnScreen(r'C:\Users\Futurex\Desktop\Script\Add2.png')
sleep(1)
pyautogui.click(add2.left+add2.width/2,add2.top+add2.height/2)
sleep(1)
for line in lines:
res=line.split(':')
name=res[2]
qq_num=res[3]
qq_num=qq_num.split('}')[0]
name=name.split('"')[1]
name=name.replace(' ','')
print(qq_num,name)
sleep(1)
AddFriend(qq_num,name)
sleep(1)
其中list.txt格式类似于
2: {name: "TryAlice", uin: 2713749603}
3: {name: "XX", uin: XXXXXXXX}
4: {name: "XX", uin: XXXXXXX}
5: {name: "XXXX", uin: XXXXXXX}
当然,这是基于tim做的,原理就是,模拟手动添加好友(这东西在理想状态下用按键精灵也不错哎),说到这我就想起来,看到之前有 人用opencv玩明日方舟,网易好像也有个类似的库,emmm,跑题了。用的图片如下。
find.png
Add3.png
input.png
next.png
nickname.png
cancel.png
GB.png
Add.png
Add2.png
结尾
明明完全模拟的手动添加,但还是收不到好友验证,绝了。 一开始偷懒用的是接口,还以为是接口的问题,后来用手工也没有受到验证,看来是腾讯给加了限制。(自闭)
对了关于添加好友时可能会弹出来的滑块验证,没有写,原因是第一次遇到了滑块验证,打算第二天写,结果第二天这个滑块验证就像消失了一样,没有弹出来。算了,懒得写了。(我躺)。感觉这篇参考用的方法很流氓。这篇挺不错,这篇也是,让我想起了遥感数字图像处理,卷积运算进行边缘提取。(绝了)
import webbrowser
str="tencent://AddContact/?fromId=30&fromSubId=1&subcmd=all&uin=2713749603"
webbrowser.open(str)
希望这篇post对有相关需求的人又所帮助,以上。