抖音自动关注脚本,每天加粉120人左右
抖音自动关注脚本,每天加粉120人左右
最近做抖音号,用python写了个脚本,自动关注粉丝。(通过adb连接手机,既可以用usb线,也可以wifi连接)
脚本的功能:
在手机上打开一个指定用户的粉丝列表,逐个进行关注,关注之前,先判断是否女性,如是则关注,不是则返回,继续循环。(还可以加入打招呼语)
每天关注200个女性用户,专门关注那种粉丝量不多的,这样回关率会更高。
我测试的结果是每天能有120人回关我。
自己再把视频内容打磨一下,开个抖音小店,挣点小钱还是可以的。
当然,从长远来说,做爆款视频才是出路,一个视频火了几千几万粉丝都有了,但那玩意靠运气,有时不是一朝一夕就能达到的。
这个脚本可以每天持续,无成本运行。
还有自动点赞美女(孩子)视频功能(加了百度的人脸识别功能)这个也已实现,可以增加与粉丝的粘性互动,对于带货有好处。
接下来我还准备做自动回复,自动评论等功能。
#python 3.6.4 #在cmd中连接手机的命令:adb connect 192.168.31.32(地址) # encoding:utf-8 import os import cv2 import sys import time import random from PIL import Image #pip install pillow import diannaoshuohua os.system('adb tcpip 1314') os.system('adb connect 192.168.xx.xxx:1314')#无线连接 adb time.sleep(2) d = u2.connect('192.168.xx.xxx:1314')#否则,要在cmd界面去运行 # 上传照片到电脑,截粉丝列表图片 def screen(): # 截图保存在手机上 os.system('adb shell screencap -p /sdcard/screen.png') # 传到电脑上 os.system('adb pull /sdcard/screen.png') # 截图,该粉丝详情页图片 def screen3(): # 截图保存在手机上 os.system('adb shell screencap -p /sdcard/screen3.png') # 传到电脑上 os.system('adb pull /sdcard/screen3.png') #处理照片,找到要点击的按钮的所有纵坐标值 def getDistance(): #读取图片 image = Image.open('screen.png') #返回元组 width = image.size[0] height = image.size[1] #print(height,width) for i in range(803,804):#遍历一个纵列 for j in range(0,height): if image.getpixel((i,j))[:3] == (179, 38, 69):#如果找到符合位置的颜色点,则确定了按钮所在 yield j #生成器。返回所有找到的纵坐标的值 def jietu(mubiaotu): # 打开刚截取的全屏图 img = Image.open(mubiaotu) # 定位到需要截取的地方 img = img.crop((0, 0, 1080, 1400)) # 截取成功并保存到本地 img.save('screen3_jietu.png') def as_num(x): y = '{:.10f}'.format(x) # .10f 保留10位小数 return y # 查找设定的图片是否包含在另一张图片里 def findImg(target1,template2):#传入要查找的图片地址和名称,1为大图,2为小图,从大图里查找小图。 #读取目标图片 target = cv2.imread(target1) #读取模板图片 template = cv2.imread(template2) #获得模板图片的高宽尺寸 theight,twidth = template.shape[:2] #执行模板匹配,采用的匹配方式cv2.TM_SQDIFF_NORMED result = cv2.matchTemplate(target,template,cv2.TM_SQDIFF_NORMED) #归一化处理 cv2.normalize(result,result, 0, 1, cv2.NORM_MINMAX, -1 ) #寻找矩阵(一维数组当做向量,用Mat定义)中的最大值和最小值的匹配结果及其位置 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result) #匹配值转换为字符串 #对于cv2.TM_SQDIFF及cv2.TM_SQDIFF_NORMED方法min_val越趋近与0匹配度越好,匹配位置取min_loc #对于其他方法max_val越趋近于1匹配度越好,匹配位置取max_loc strmin_val = str(min_val) #绘制矩形边框,将匹配区域标注出来 #min_loc:矩形定点 #(min_loc[0]+twidth,min_loc[1]+theight):矩形的宽高 #(0,0,225):矩形的边框颜色;2:矩形边框宽度 cv2.rectangle(target,min_loc,(min_loc[0]+twidth,min_loc[1]+theight),(0,0,225),2) #显示结果,并将匹配值显示在标题栏上 #cv2.imshow("MatchResult----MatchingValue="+strmin_val,target) print ("匹配最小值为:"+as_num(float(str(min_val)))) print ('匹配最大值为:'+as_num(float(str(max_val)))) r = int((image.getpixel((min_loc[0]+23,min_loc[1]+17)))[0]) if (abs(float(as_num(float(str(max_val))))) >= 0.9) and r > 180:#如果找到符合位置的颜色点: print ('找到符合的图片') return True else: print('没有找到符合的图片') return False # cv2.waitKey() # cv2.destroyAllWindows() #生成器 可以遍历 惰性计算(只能运行一次) if __name__ == '__main__':# 主函数开头 i=0 n=0 k=0 sj = random.uniform(1,4) for _ in range(100):#翻的页数 screen() print('zheli') xPosition = getDistance() print(xPosition) for y in xPosition: screen() print('2zheli') xPosition = getDistance() time.sleep(sj) for y in xPosition: time.sleep(sj) os.system('adb shell input tap 495 {}'.format(y)) print(str(y)) time.sleep(sj) screen3()#个人详情页截图 time.sleep(sj) jietu('screen3.png') time.sleep(sj) image = Image.open("screen3_jietu.png")#打开个人详情页截图 time.sleep(sj) if findImg('screen3_jietu.png','chazhaomubiao.png'): print('找到一位女士,即将关注!') os.system('adb shell input tap 550 466')#点击关注按钮 time.sleep(sj) #os.system('adb shell input tap 62 151')#点击后退按钮 os.system('adb shell input keyevent 4') time.sleep(sj) i=i+1 print('已关注了'+str(i)+'位女士') if i == 198: print('本次运行已关注198人,已退出运行!') diannaoshuohua.shuohua('本次已关注198人,即将退出!') #os.system("shutdown -s -t 60") os.system('adb shell input keyevent 26')#power事件。 sys.exit() else: print('这不是女士,即将返回!') n=n+1 os.system('adb shell input keyevent 4') #点击后退按钮 #os.system('adb shell input tap 62 151') break #翻页滑动按钮 os.system('adb shell input swipe 548 1500 540 225 511') time.sleep(random.uniform(0.4, 0.8)) print('正在翻页。。。') k=k+1 print(f'已翻{k}页')