成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Python自動(dòng)給抖音漂亮小姐姐視頻點(diǎn)贊

開(kāi)發(fā) 后端
先來(lái)看看這只爬蟲(chóng)做了些什么事兒呢?通過(guò) ADB 控制你的手機(jī),幫你自動(dòng)刷抖音;調(diào)用百度人臉識(shí)別的接口,給視頻畫(huà)面中出現(xiàn)的小姐姐打分;自動(dòng)給顏值 70 以上的小姐姐的視頻點(diǎn)贊。有趣的是,根據(jù)抖音的推薦算法,連著刷幾天之后,抖音里給你推薦的全是漂亮小姐姐了。

先來(lái)看看這只爬蟲(chóng)做了些什么事兒呢?

  • 通過(guò) ADB 控制你的手機(jī),幫你自動(dòng)刷抖音
  • 調(diào)用百度人臉識(shí)別的接口,給視頻畫(huà)面中出現(xiàn)的小姐姐打分
  • 自動(dòng)給顏值 70 以上的小姐姐的視頻點(diǎn)贊

有趣的是,根據(jù)抖音的推薦算法,連著刷幾天之后,抖音里給你推薦的全是漂亮小姐姐了。

[[393106]]

成果展示

先演示一下效果。

連接手機(jī)(手機(jī)要允許ADB調(diào)試),運(yùn)行爬蟲(chóng)程序,程序會(huì)自動(dòng)打開(kāi)抖音APP,自動(dòng)尋找漂亮的小姐姐啦。

有趣的是,根據(jù)抖音的推薦算法,連著刷幾天之后,抖音里給你推薦的全是漂亮小姐姐了。剛開(kāi)始刷的時(shí)候,可能幾十條里都沒(méi)有一個(gè)漂亮小姐姐,而刷幾天之后,基本上刷到的每條視頻里都是漂亮小姐姐???,這是我刷了三天的 “成果”, 斷斷續(xù)續(xù)刷了三天時(shí)間,已經(jīng) “點(diǎn)贊” 了兩百多條漂亮小姐姐的視頻。

咱有一說(shuō)一啊,先不管是不是因?yàn)槎兑舻拿李仦V鏡功能強(qiáng)大,單純從爬蟲(chóng)爬到的視頻來(lái)看,這些小姐姐是真的好看,結(jié)果還是令人滿意的。

下面這個(gè)是抖音里檢測(cè)到漂亮小姐姐的截圖畫(huà)面,本來(lái)這是作為臨時(shí)文件,人臉檢測(cè)完即刪除的,我看著好看,就給留了下來(lái)。

這個(gè)爬蟲(chóng)程序大概就是這樣,下面詳細(xì)講解一下,這個(gè)爬蟲(chóng)是怎么做出來(lái)的。

1. 基礎(chǔ)準(zhǔn)備 這個(gè)爬蟲(chóng)需要用到三個(gè)東西。Python 環(huán)境,爬蟲(chóng)程序是用 Python 寫(xiě)的,肯定要先配置好 Python 的環(huán)境啊。沒(méi)有配好的自行去安裝一下 Anaconda。

此外,還需要安裝一些必要的庫(kù),如 requests,urllib,PIL等。ADB 環(huán)境,我們的爬蟲(chóng)需要通過(guò) ADB 命令對(duì)手機(jī)進(jìn)行操作,實(shí)現(xiàn)自動(dòng)刷抖音,自動(dòng)點(diǎn)贊的功能。安裝方法自行百度。

人臉識(shí)別API,我這里用的是百度AI的人臉識(shí)別接口,大家需要自行注冊(cè)一個(gè)百度AI 開(kāi)放平臺(tái)的賬號(hào),然后創(chuàng)建一個(gè)人臉識(shí)別的應(yīng)用,然后將 appid,api_key,secret_key 三個(gè)參數(shù)填到爬蟲(chóng)代碼這兒即可。

這里簡(jiǎn)單對(duì) ADB 介紹一下。

ADB 的全稱為 Android Debug Bridge,就是起到了調(diào)試橋的作用,用這個(gè)可以很方便地對(duì)安卓應(yīng)用進(jìn)行調(diào)試。

簡(jiǎn)單點(diǎn)說(shuō),就是你可以用這個(gè)工具來(lái)操作你的手機(jī),它可以完成你在手機(jī)上能做的任何操作。

比如說(shuō)安裝/卸載/打開(kāi)/關(guān)閉手機(jī)APP,滑動(dòng)屏幕,點(diǎn)擊,長(zhǎng)按等等。更復(fù)雜的操作也能做,我們這里就不講了,因?yàn)槲覀兊倪@個(gè)抖音爬蟲(chóng)用到的 ADB 指令基本也就這些了。a. ADB 啟動(dòng)應(yīng)用 只需要知道應(yīng)用的 package_name 和 activity_name,然后調(diào)用下面的 adb 指令,即可打開(kāi)相應(yīng)的應(yīng)用。

  1. adb shell am start -n [package_name] [activity_name] 

以抖音 APP 為例,它的 package_name 和 activity_name 如下。 

  1. # 抖音App的應(yīng)用包名和初始Activity  
  2. package_name = 'com.ss.android.ugc.aweme'  
  3. activity_name = 'com.ss.android.ugc.aweme.splash.SplashActivity' 

所以在命令行中運(yùn)行下面的指令,即可打開(kāi)手機(jī)中的抖音APP。

  1. adb shell am start -n com.ss.android.ugc.aweme com.ss.android.ugc.aweme.splash.SplashActivity 

b. ADB 點(diǎn)擊屏幕

在命令行中運(yùn)行下面指令,即可實(shí)現(xiàn)手機(jī)屏幕的點(diǎn)擊。其中 1330 1750 是點(diǎn)擊的 x y坐標(biāo)。

  1. adb shell input tap 1330 1750 

以此爬蟲(chóng)里的抖音點(diǎn)贊為例,我只需要記錄下抖音app中,點(diǎn)贊按鈕對(duì)應(yīng)的屏幕坐標(biāo),然后調(diào)用這句指令,即可完成自動(dòng)點(diǎn)贊。

c. ADB 滑動(dòng)屏幕

在命令行中運(yùn)行下面指令,實(shí)現(xiàn)的是手機(jī)屏幕的滑動(dòng)操作。其中有 5 個(gè)參數(shù)。這五個(gè)數(shù)字分別表示的是,滑動(dòng)起始點(diǎn)的 x y 坐標(biāo),滑動(dòng)終止點(diǎn)的 x y 坐標(biāo),滑動(dòng)時(shí)長(zhǎng)。

  1. adb shell input swipe 900 1400 400 1400 100 

比如上面這句指令表示的就是,從坐標(biāo)(900,1400)的點(diǎn),滑動(dòng)到坐標(biāo) (400,1400)的點(diǎn),滑動(dòng)過(guò)程 100 毫秒。

其實(shí),這句指令稍微改一改,把起始坐標(biāo)和終止坐標(biāo)設(shè)為一致,滑動(dòng)時(shí)長(zhǎng)設(shè)長(zhǎng)一些,滑動(dòng)操作就變成了 “長(zhǎng)按屏幕” 操作了。

基本準(zhǔn)備工作也差不多就這些了,下面講一下爬蟲(chóng)程序的整體思路吧。

爬蟲(chóng)整體思路

如圖所示,爬蟲(chóng)的整個(gè)爬取思路如下。

首先啟動(dòng)抖音 APP,等第一個(gè)視頻加載出來(lái)播放之后,截取屏幕畫(huà)面,調(diào)用百度 AI 的人臉識(shí)別接口進(jìn)行人臉檢測(cè)和評(píng)分。

如果畫(huà)面中檢測(cè)到顏值評(píng)分70分以上,且性別為女的人臉,則點(diǎn)擊屏幕中的”點(diǎn)贊“按鈕,然后上滑播放下一條視頻。

如果畫(huà)面中中沒(méi)有出現(xiàn)人臉,或者性別為男,或者顏值不足70,則繼續(xù)截圖檢測(cè),直到視頻播放結(jié)束,或者找到滿足條件的人臉為止,然后上滑播放下一條視頻。為了盡可能地不錯(cuò)過(guò)有漂亮小姐姐的抖音,每條視頻中會(huì)截取 4 - 5 張圖片進(jìn)行檢測(cè),只要有一張截圖中有高顏值的小姐姐,那么我們就對(duì)這個(gè)視頻進(jìn)行點(diǎn)贊。如果這樣都檢測(cè)不出來(lái),只能說(shuō)小姐姐藏得太深,或者漂亮的不夠明顯了。

大概思路就是這樣,下面我們就來(lái)動(dòng)手完成爬蟲(chóng)吧!

動(dòng)手?jǐn)]碼寫(xiě)爬蟲(chóng)

由于爬蟲(chóng)還是稍微有點(diǎn)大,所以我拆成三個(gè)部分來(lái)寫(xiě)。人臉識(shí)別部分,ADB 控制部分,和爬蟲(chóng)主邏輯部分。

(1)人臉識(shí)別部分

這部分用了調(diào)用了 百度AI 的人臉識(shí)別接口,需要將你自己申請(qǐng)的 appid,api_key,secret_key 三個(gè)參數(shù)填到代碼里。 

  1. import base64 
  2. import urllib 
  3. import json 
  4. import requests 
  5. import sys 
  6.  
  7. appid = '填寫(xiě)你申請(qǐng)的 appid' 
  8. api_key = '填寫(xiě)你申請(qǐng)的 api_key' 
  9. secret_key = '填寫(xiě)你申請(qǐng)的 secret_key' 
  10. 這部分的代碼主要包括四個(gè)函數(shù),包括 

這部分的代碼主要包括四個(gè)函數(shù),包括:

(2)ADB 控制部分

ADB 控制部分,大概思路就是通過(guò)python中的 os 庫(kù)執(zhí)行 adb 指令,來(lái)對(duì)手機(jī)進(jìn)行操作。

主要包括四個(gè)函數(shù):

  • start_my_app 函數(shù),用來(lái)啟動(dòng) 抖音 APP。
  • save_video_met 函數(shù),點(diǎn)擊 ”點(diǎn)贊“ 按鈕。在檢測(cè)到漂亮小姐姐之后調(diào)用。
  • play_next_video 函數(shù),向上滑動(dòng)屏幕,播放下一個(gè)視頻。
  • get_screen_shot_part_img 函數(shù),用來(lái)截取屏幕圖像,保存到電腦中,以便后續(xù)人臉識(shí)別。 
  1. import os 
  2. from PIL import Image 
  3.   
  4. # 抖音App的應(yīng)用包名和初始Activity 
  5. package_name = 'com.ss.android.ugc.aweme' 
  6. activity_name = 'com.ss.android.ugc.aweme.splash.SplashActivity' 
  7.   
  8. def start_my_app(package_name, activity_name): 
  9.     # 打開(kāi) Android 應(yīng)用 
  10.     os.popen('adb shell am start -n %s/%s' % (package_name, activity_name)) 
  11.      
  12. def save_video_met(screen_name, find_girl_num): 
  13.     # 保存截圖 
  14.     img = Image.open(screen_name).convert('RGB'
  15.     img.save("漂亮的小姐姐/DYGirl_%d.jpg" % find_girl_num) 
  16.     # 給視頻點(diǎn)贊 
  17.     os.system("adb shell input tap 1330 1750"
  18.      
  19. def play_next_video(): 
  20.     # 向上劃屏幕,播放下一段視頻 
  21.     os.system("adb shell input swipe 540 1300 540 500 100"
  22.   
  23. def get_screen_shot_part_img(image_name): 
  24.     # 截圖 
  25.     os.system("adb shell /system/bin/screencap -p /sdcard/screenshot.jpg"
  26.     os.system("adb pull /sdcard/screenshot.jpg %s" % image_name) 
  27.     # 打開(kāi)圖片 
  28.     img = Image.open(image_name).convert('RGB'
  29.     # 圖片的原寬、高 
  30.     w, h = img.size 
  31.     # 截取部分,去掉其頭像、其他內(nèi)容雜亂元素 
  32.     img = img.crop((0, 400, 1200, 2750)) 
  33.     img.thumbnail((int(w / 1.5), int(h / 1.5))) 
  34.     # 保存到本地 
  35.     img.save(image_name) 
  36.     return image_name 

這些函數(shù)中的坐標(biāo)是根據(jù)我手機(jī)的屏幕坐標(biāo)寫(xiě)的(華為 Mate 20 Pro),其他型號(hào)手機(jī)的同學(xué),可以根據(jù)自己手機(jī)屏幕的分辨率,對(duì)這些參數(shù)進(jìn)行調(diào)整。

修改坐標(biāo)的方法我也大概說(shuō)一下,在你手機(jī)的設(shè)置中,找到開(kāi)發(fā)人員選項(xiàng),然后將指針位置這個(gè)打開(kāi)

然后你就可以看到你點(diǎn)擊到屏幕的位置了,頂部也會(huì)顯示你點(diǎn)擊的位置坐標(biāo)。

打開(kāi)抖音,手指放到點(diǎn)贊按鈕上,記錄下此時(shí)屏幕頂部顯示的坐標(biāo),然后把這個(gè)坐標(biāo)替換到代碼中就好了。

(3)程序主邏輯部分

根據(jù)前面分析的流程圖,編寫(xiě)爬蟲(chóng)程序的主邏輯。 

  1. import datetime 
  2. import time 
  3. import shutil 
  4.  
  5. if __name__ == '__main__'
  6.  
  7.     access_token = get_access_token() 
  8.     # 設(shè)置一條視頻最長(zhǎng)的識(shí)別時(shí)間,要是墨跡 10 秒還不露臉,也不管她了,下一個(gè) 
  9.     RECOGNITE_TOTAL_TIME = 10  
  10.     # 識(shí)別次數(shù) 
  11.     recognite_count = 0 
  12.  
  13.     # 圖片類型【網(wǎng)絡(luò)和本地】 
  14.     TYPE_IMAGE_NETWORK = 0 
  15.     TYPE_IMAGE_LOCAL = 1 
  16.  
  17.     print("打開(kāi)抖音~(yú)"
  18.  
  19.     start_my_app(package_name, activity_name) 
  20.     time.sleep(5) 
  21.     print("開(kāi)始播放視頻~"
  22.     find_girl_num = 0 
  23.     # 對(duì)當(dāng)前視頻截圖去人臉識(shí)別 
  24.     while True
  25.         # 開(kāi)始識(shí)別的時(shí)間 
  26.         recognite_time_start = datetime.datetime.now() 
  27.         # 識(shí)別次數(shù) 
  28.         recognite_count = 1 
  29.         # 循環(huán)地去刷抖音 
  30.         while True
  31.             # 獲取截圖 
  32.             screen_name = get_screen_shot_part_img('images/temp%d.jpg' % recognite_count) 
  33.             # 人臉識(shí)別 
  34.             recognite_result = analysis_face(parse_face_pic(screen_name, TYPE_IMAGE_LOCAL, access_token)) 
  35.             recognite_count += 1 
  36.             # 第n次識(shí)別結(jié)束后的時(shí)間 
  37.             recognite_time_end = datetime.datetime.now() 
  38.             # 這是一個(gè)美女 
  39.             if recognite_result: 
  40.                 find_girl_num += 1 
  41.                 save_video_met(screen_name, find_girl_num) 
  42.                 print("已經(jīng)發(fā)現(xiàn) %d 個(gè)漂亮小姐姐" % find_girl_num) 
  43.                 break 
  44.             else
  45.                 if (recognite_time_end - recognite_time_start).seconds < RECOGNITE_TOTAL_TIME: 
  46.                     continue 
  47.                 else
  48.                     print('超時(shí)?。?!這是一條沒(méi)有吸引力的視頻!'
  49.                     # 跳出里層循環(huán) 
  50.                     break 
  51.         # 刪除臨時(shí)文件 
  52.         shutil.rmtree('./images'
  53.         time.sleep(0.05) 
  54.         os.mkdir('./images'
  55.  
  56.         # 播放下一條視頻 
  57.         print('==' * 30) 
  58.         time.sleep(2) 
  59.         print('準(zhǔn)備播放下一個(gè)視頻~'
  60.         play_next_video() 
  61.         time.sleep(2) 

有時(shí)候網(wǎng)絡(luò)可能卡一些,視頻加載需要一些時(shí)間,所以每次看到下一條視頻時(shí),先停兩秒,等視頻差不多加載好了再開(kāi)始檢測(cè)。

后記

這爬蟲(chóng)我斷斷續(xù)續(xù)玩了一段時(shí)間了,反正沒(méi)事兒的時(shí)候手機(jī)放一邊,把爬蟲(chóng)開(kāi)了后臺(tái)跑著,讓它自己刷著玩。然后晚上拿起手機(jī)一看,哇手機(jī)里全是漂亮的小姐姐!

 

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2021-08-10 15:37:34

鴻蒙HarmonyOS應(yīng)用

2019-09-23 10:04:26

抖音識(shí)別器Github

2019-10-21 10:01:58

Python素描技術(shù)

2020-05-26 10:20:56

Python開(kāi)發(fā)工具

2019-10-24 11:00:05

Python 開(kāi)發(fā)編程語(yǔ)言

2020-12-02 09:42:42

PythonApp抖音視頻

2021-10-25 20:02:00

gRPC訂閱模式超時(shí)控制

2023-02-27 22:41:44

Python水印短視頻

2024-03-12 17:13:51

2018-05-10 16:47:10

戴爾

2023-07-07 08:24:53

Python爬蟲(chóng)Flask

2020-05-11 17:00:30

點(diǎn)贊MySQLRedis

2020-10-13 15:20:25

微信短視頻PK抖音

2021-08-03 22:52:52

Python編程語(yǔ)言開(kāi)發(fā)

2020-09-29 09:09:03

數(shù)據(jù)庫(kù)程序運(yùn)行

2022-08-11 09:30:52

transitionCSS

2017-11-10 14:12:35

2020-09-17 18:31:54

戴爾

2021-06-28 05:19:32

抖音電腦
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 一级片免费在线观看 | 中文字幕高清免费日韩视频在线 | 欧美一区视频 | 国产精品3区 | 亚洲国产成人精 | 视频一区二区中文字幕 | 成人在线看片 | 亚洲国产一区二区视频 | 精品亚洲一区二区三区四区五区 | 国产成人精品一区二 | 国产一区二区三区四区hd | 日韩中文一区二区三区 | 一区二区不卡视频 | 综合一区二区三区 | 综合色久 | 亚洲精品二区 | 九七午夜剧场福利写真 | 一区二区三区免费观看 | 午夜欧美 | 请别相信他免费喜剧电影在线观看 | 久久亚洲国产精品日日av夜夜 | 日本精a在线观看 | 91精品久久久久久久久久 | 第四色播日韩第一页 | 日韩欧美亚洲 | 国产小视频在线 | 黄色网址免费在线观看 | 欧美激情在线精品一区二区三区 | 精品乱码一区二区三四区视频 | 国产福利91精品 | 一级黄色裸片 | 久久亚洲一区二区 | 日韩视频在线播放 | 欧美日韩网站 | 亚洲精品久久久一区二区三区 | 日韩三级在线 | 国产第一页在线播放 | 国产精品久久久久久婷婷天堂 | www.久久久久久久久久久久 | 欧美日韩网站 | 亚洲国产成人精品久久久国产成人一区 |