用Python自动给抖音漂亮小姐姐视频点赞!
2、调用百度人脸识别的接口,给视频画面中出现的小姐姐打分
3、自动给颜值 70 以上的小姐姐的视频点赞
先演示一下效果。
连接手机(手机要允许ADB调试),运行爬虫程序,程序会自动打开抖音APP,自动寻找漂亮的小姐姐啦。
这个爬虫程序大概就是这样,下面详细讲解一下,这个爬虫是怎么做出来的。
# 抖音App的应用包名和初始Activity
package_name = 'com.ss.android.ugc.aweme'
activity_name = 'com.ss.android.ugc.aweme.splash.SplashActivity'```
adb shell am start -n com.ss.android.ugc.aweme com.ss.android.ugc.aweme.splash.SplashActivity```
adb shell input tap 1330 1750```
adb shell input swipe 900 1400 400 1400 100```
由于爬虫还是稍微有点大,所以我拆成三个部分来写。
人脸识别部分,ADB 控制部分,和爬虫主逻辑部分。
import base64
import urllib
import json
import requests
import sys
appid = '填写你申请的 appid'
api_key = '填写你申请的 api_key'
secret_key = '填写你申请的 secret_key'
这部分的代码主要包括四个函数,包括
```
save_video_met 函数,点击 ”点赞“ 按钮。在检测到漂亮小姐姐之后调用。
play_next_video 函数,向上滑动屏幕,播放下一个视频。
get_screen_shot_part_img 函数,用来截取屏幕图像,保存到电脑中,以便后续人脸识别。
import os
from PIL import Image
# 抖音App的应用包名和初始Activity
package_name = 'com.ss.android.ugc.aweme'
activity_name = 'com.ss.android.ugc.aweme.splash.SplashActivity'
def start_my_app(package_name, activity_name):
# 打开 Android 应用
os.popen('adb shell am start -n %s/%s' % (package_name, activity_name))
def save_video_met(screen_name, find_girl_num):
# 保存截图
img = Image.open(screen_name).convert('RGB')
img.save("漂亮的小姐姐/DYGirl_%d.jpg" % find_girl_num)
# 给视频点赞
os.system("adb shell input tap 1330 1750")
def play_next_video():
# 向上划屏幕,播放下一段视频
os.system("adb shell input swipe 540 1300 540 500 100")
def get_screen_shot_part_img(image_name):
# 截图
os.system("adb shell /system/bin/screencap -p /sdcard/screenshot.jpg")
os.system("adb pull /sdcard/screenshot.jpg %s" % image_name)
# 打开图片
img = Image.open(image_name).convert('RGB')
# 图片的原宽、高
w, h = img.size
# 截取部分,去掉其头像、其他内容杂乱元素
img = img.crop((0, 400, 1200, 2750))
img.thumbnail((int(w / 1.5), int(h / 1.5)))
# 保存到本地
img.save(image_name)
return image_name```
import datetime
import time
import shutil
if __name__ == '__main__':
access_token = get_access_token()
# 设置一条视频最长的识别时间,要是墨迹 10 秒还不露脸,也不管她了,下一个
RECOGNITE_TOTAL_TIME = 10
# 识别次数
recognite_count = 0
# 图片类型【网络和本地】
TYPE_IMAGE_NETWORK = 0
TYPE_IMAGE_LOCAL = 1
print("打开抖音~")
start_my_app(package_name, activity_name)
time.sleep(5)
print("开始播放视频~")
find_girl_num = 0
# 对当前视频截图去人脸识别
while True:
# 开始识别的时间
recognite_time_start = datetime.datetime.now()
# 识别次数
recognite_count = 1
# 循环地去刷抖音
while True:
# 获取截图
screen_name = get_screen_shot_part_img('images/temp%d.jpg' % recognite_count)
# 人脸识别
recognite_result = analysis_face(parse_face_pic(screen_name, TYPE_IMAGE_LOCAL, access_token))
recognite_count += 1
# 第n次识别结束后的时间
recognite_time_end = datetime.datetime.now()
# 这是一个美女
if recognite_result:
find_girl_num += 1
save_video_met(screen_name, find_girl_num)
print("已经发现 %d 个漂亮小姐姐" % find_girl_num)
break
else:
if (recognite_time_end - recognite_time_start).seconds < RECOGNITE_TOTAL_TIME:
continue
else:
print('超时!!!这是一条没有吸引力的视频!')
# 跳出里层循环
break
# 删除临时文件
shutil.rmtree('./images')
time.sleep(0.05)
os.mkdir('./images')
# 播放下一条视频
print('==' * 30)
time.sleep(2)
print('准备播放下一个视频~')
play_next_video()
time.sleep(2)```
最后给大家推荐视频号,每天更新爬虫高阶实战视频。 扫描关注👇 莫等闲,白了少年头
评论