的视频来看看这个爬虫做了什么?通过ADB控制你的手机帮你自动刷抖音调用百度人脸识别界面,给出现在视频画面的妹子打分,颜值70以上的妹子视频自动给你点赞有趣的是,根据抖音的推荐算法,经过几天的连续浏览,抖音给大家推荐的都是美女。结果展示先演示一下效果。连接手机(手机必须允许ADB调试),运行爬虫程序,程序会自动打开抖音APP,自动寻找美女。有意思的是,根据抖音的推荐算法,经过几天的浏览,抖音推荐的全是美女。刚开始浏览的时候,可能几十个视频里都没有美女,但是浏览了几天,基本上看到的每个视频都是美女。看,这就是我刷了三天的“成果”。断断续续刷了三天,我已经“点赞”了200多个美女视频。说说吧,不管是不是抖音强大的美颜滤镜的缘故,单从爬虫爬的视频来看,这几位小姐姐长得真好看,效果还是让人满意的。以下是在抖音中检测到的美女截图。本来是临时文件,人脸检测后删除了。我觉得它很好看,所以我保留了它。这个爬虫程序大概是这样的。下面我详细解释一下这个爬虫是如何制作的。1.基本准备这个爬虫需要三样东西。Python环境,爬虫程序是用Python编写的,需要先配置好Python环境。如果你没有好的,请自己安装Anaconda。另外还需要安装一些必要的库,比如requests、urllib、PIL等。在adb环境下,我们的爬虫需要通过adb命令来操作手机,实现自动刷抖音和自动点赞的功能.安装方法自行百度。人脸识别API,我这里使用的是百度AI的人脸识别接口,需要在百度AI开放平台注册账号,然后创建人脸识别应用,然后填写appid,api_key,secret_key三个参数去爬虫代码在这里。下面简单介绍一下ADB。ADB的全称是AndroidDebugBridge,起到调试桥梁的作用,可以非常方便的调试Android应用程序。简单的说,你可以用这个工具来操作你的手机,它可以完成你在手机上能做的任何操作。例如安装/卸载/打开/关闭手机APP、滑屏、点击、长按等。还可以做更复杂的操作,这里就不说了,因为我们的抖音爬虫使用的ADB命令基本都是一样的。A。ADB启动应用程序。你只需要知道应用的package_name和activity_name,然后调用下面的adb命令就可以打开对应的应用。adbshel??lamstart-n[package_name][activity_name]以抖音APP为例,其package_name和activity_name如下。#抖音App的应用包名和初始Activitypackage_name='com.ss.android.ugc.aweme'activity_name='com.ss.android.ugc.aweme.splash.SplashActivity'所以在命令行运行如下命令,您可以打开手机中的抖音APP。adbshel??lamstart-ncom.ss.android.ugc.awemecom.ss.android.ugc.aweme.splash.SplashActivityb.adb点击屏幕,在命令行中运行如下命令,实现点击手机屏幕。其中13301750是点击的xy坐标。adbshel??linputtap13301750以爬虫中的抖音like为例。我只需要在抖音app中记录点赞按钮对应的屏幕坐标,然后调用这个命令就可以完成自动点赞了。C。ADB滑屏在命令行中运行如下命令,实现手机屏幕的滑动操作。里面有5个参数。这五个数字分别代表滑动起点的xy坐标、滑动终点的xy坐标和滑动时长。adbshel??linputswipe90014004001400100例如上面的命令表示从坐标(900,1400)的点到坐标(400,1400)的点滑动过程需要100毫秒。其实这个命令稍作改动,开始坐标和结束坐标设置相同,滑动时间设置的更长一些,滑动操作变成了“长按屏幕”操作。基本的准备工作就说完了,下面说说爬虫程序的整体思路。爬虫的整体思路如图所示,爬虫的整个爬行思路如下。首先启动抖音APP,第一段视频加载播放后,截屏调用百度AI的人脸识别接口进行人脸检测打分。如果在屏幕上检测到颜值得分在70以上的女性脸,点击屏幕上的“赞”按钮,然后向上滑动播放下一个视频。如果画面中没有人脸,或者性别是男性,或者颜值小于70,继续截图检测,直到视频播放结束,或者找到符合条件的人脸,然后滑动播放下一个视频。为了尽可能不错过与美女的抖音,每个视频会截取4-5张图片进行检测。只要截图里有好看的小姐姐,那我们就会点赞这个视频。如果这样查不出来,只能说小姐姐隐藏太深,或者美的不够明显。大概思路是这样的,下面开始完成爬虫吧!动手打码写爬虫由于爬虫还是有点大,我就分成三部分来写。人脸识别部分,ADB控制部分,爬虫主要逻辑部分。(1)人脸识别部分该部分使用了百度AI的人脸识别接口,需要在代码中填写自己申请的appid、api_key、secret_key三个参数。importbase64importurllibimportjsonimportrequestsimportsysappid='填写你申请的appid'api_key='填写你申请的api_key'secret_key='填写你申请的secret_key'这部分代码主要包括四个函数,这部分代码主要包括包括四个函数,包括:(2)ADB控制部分ADB控制部分的大致思路是通过python中的os库执行adb命令来操作手机。主要包括四个函数:start_my_app函数,用于启动抖音APP。save_video_met函数,单击“喜欢”按钮。在检测到一位漂亮女士后调用。play_next_video函数,向上滑动屏幕播放下一个视频。get_screen_shot_part_img函数用于截取屏幕图像并保存到电脑中,用于后续的人脸识别。importosfromPILimportImage#抖音App的应用包名和初始Activitypackage_name='com.ss.android.ugc.aweme'activity_name='com.ss.android.ugc.aweme.splash.SplashActivity'defstart_my_app(package_name,activity_name):#OpenAndroid应用程序os.popen('adbshel??lamstart-n%s/%s'%(package_name,activity_name))defsave_video_met(screen_name,find_girl_num):#Savescreenshotimg=Image.open(screen_name).convert('RGB')img.save("漂亮小姐姐/DYGirl_%d.jpg"%find_girl_num)#给视频点赞os.system("adbshel??linputtap13301750")defplay_next_video():#向上滑动屏幕播放下一个视频os.system("adbshel??linputswipe5401300540500100")defget_screen_shot_part_img(image_name):#Screenshotos.system("adbshel??l/system/bin/screencap-p/sdcard/screenshot.jpg")os.system("adbpull/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)returnimage_name这些函数中的坐标是基于我手机的屏幕写的是坐标(华为Mate20Pro)。其他型号手机的同学可以根据自己手机屏幕的分辨率调整这些参数。选项,然后打开指针位置,然后就可以在屏幕上看到你点击的位置,而且你点击的位置的坐标也会显示在最上面。打开抖音,将手指放在点赞按钮上,记录下此时屏幕上方显示的坐标,然后将这个坐标替换到代码中。(3)程序主要逻辑部分根据上面分析的流程图编写爬虫程序的主要逻辑。importdatetimeimporttimeimportshutilif__name__=='__main__':access_token=get_access_token()#设置一个视频的最长识别时间,如果10秒墨迹没有出现,就不管她了,下一个RECOGNITE_TOTAL_TIME=10#识别次数recognize_count=0#图片类型【网络和本地】TYPE_IMAGE_NETWORK=0TYPE_IMAGE_LOCAL=1print("打开抖音~")start_my_app(package_name,activity_name)time.sleep(5)print("开始播放视频~")find_girl_num=0#去掉当前视频截图的人脸识别whileTrue:#开始识别时间recognize_time_start=datetime.datetime.now()#识别次数recogn_count=1#循环刷抖音whileTrue:#获取截图screen_name=get_screen_shot_part_img('images/temp%d.jpg'%recognize_count)#人脸识别recognize_result=analysis_face(parse_face_pic(screen_name,TYPE_IMAGE_LOCAL,access_token))recognite_count+=1#第n次识别结束后的时间recognize_time_end=datetime.datetime.now()#这个是美女ifrecognite_result:find_girl_met_vid=eo(screen_name,find_girl_num)print("找到%d个美女"%find_girl_num)breakelse:if(recognite_time_end-recognite_time_start).seconds
