金豆 发表于 2020-6-11 12:42

抖音自动关注脚本,每天加粉120人左右(测试中),开个小店挣点零花

脚本的功能:
    在手机上打开一个指定用户的粉丝列表,逐个进行关注,关注之前,先判断是否女性,如是则关注,不是则返回,继续循环。(还可以加入打招呼语)
    每天关注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
    height = image.size
    #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+twidth,min_loc+theight):矩形的宽高
    #(0,0,225):矩形的边框颜色;2:矩形边框宽度
    cv2.rectangle(target,min_loc,(min_loc+twidth,min_loc+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+23,min_loc+17))))

    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}页')

jueshagudu 发表于 2020-6-11 12:42

感谢楼主分享

maoniwala 发表于 2020-6-11 12:42

谢谢分享

柠檬sir 发表于 2020-6-11 13:02

谢谢大佬

hanschris 发表于 2020-6-11 13:37

谢谢大牛

努力努力在努力 发表于 2020-6-11 13:37

6666

zhu0797zhu 发表于 2020-6-11 13:49

666666666

1030710096 发表于 2020-6-11 14:35

6666666666

ainidaniu 发表于 2020-6-11 15:42

好的,非常感谢

fteelb 发表于 2020-6-11 16:00

66666666,非常感谢
页: [1] 2
查看完整版本: 抖音自动关注脚本,每天加粉120人左右(测试中),开个小店挣点零花