91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么實現自動化刷抖音

發布時間:2021-06-12 11:24:38 來源:億速云 閱讀:353 作者:小新 欄目:開發技術

這篇文章主要介紹Python中怎么實現自動化刷抖音,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

實現思路

1.獲取手機抖音短視頻的截圖
2.調用百度API識別人臉
3.對符合條件的視頻點贊和評論
獲取抖音視頻的截圖
獲取視頻截屏,在這里用的是adb工具。adb工具即Android Debug Bridge(安卓調試橋)。是連接Android手機與PC端的橋梁,通過adb可以管理、操作模擬器和實體設備,如安裝軟件、查看設備軟硬件參數、系統升級、運行shell命令等。在這里通過命令行窗口發送對應的命令,就可以實現手機的截屏。如果沒有安裝adb工具包,需要先安裝adb工具包。

具體實現代碼

# 圖片壓縮比例
SIZE_normal = 1.0
SIZE_small = 1.5
SIZE_more_small = 2.0


# adb手機截圖
def get_screen_shot_img():
    # 截圖
    os.system("adb shell /system/bin/screencap -p /sdcard/screenshot.jpg")
    os.system("adb pull /sdcard/screenshot.jpg face.jpg")
    # 壓縮圖片
    img = Image.open("face.jpg").convert('RGB')
    scale = SIZE_small
    w, h = img.size
    img.thumbnail((int(w / scale), int(h / scale)))
    img.save('face.jpg')

調用百度API識別人臉

(1)進入百度云的人臉識別控制臺

https://console.bce.baidu.com/ai/?_=1528192333418&fromai=1#/ai/face/overview/index

若沒有百度賬號,可以用手機號快速注冊一個。

(2)創建人臉識別應用

賬號登錄成功之后,你需要創建應用才能正式調用百度api,應用創建成功后會獲取到應用對應的API Key及Secret Key,用著兩個參數進行接口調用操作,及相關配置。

點擊上圖中的創建應用,填寫【應用名稱】和【應用描述】,即可創建應用(其他選項可以不做操作,使用默認值即可)

(3)獲取秘鑰

創建完成后,點擊“返回應用列表”進行下一步操作。平臺將會分配給你此應用的相關憑證:API Key、Secret Key。他將用于在下一步獲取調用接口所需的Access Token中。

(4)拿到API Key,Secret Key之后,通過這兩個參數獲取調用接口所需的Access Token

具體實現代碼

def get_access_token():
    # client_id 為官網獲取的AK, client_secret 為官網獲取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官網獲取的AK】' \
           '&client_secret=【官網獲取的SK】 '
    header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
                   "Content-Type": "application/json"}
    req = request.Request(url=host, headers=header_dict)
    res = request.urlopen(req)
    res = res.read()
    res_json = json.loads(res.decode('utf-8'))
    return res_json["access_token"]

調用百度API

'''
調用百度API,進行人臉探測
imgPath:圖片的地址
access_token:開發者token
'''


def get_face_info_from_bai_du(img_path, access_token):
    # 接口請求地址
    request_url = "https://aip.baidubce.com/rest/2.0/face/v3/detect"
    # 二進制方式打開圖片文件
    f = open(img_path, 'rb')
    # 圖片轉換為base64
    img = base64.b64encode(f.read())
    params = {"face_field": "age,beauty,gender", "image": img, "image_type": 'BASE64', "max_face_num": 5}
    params = urllib.parse.urlencode(params).encode(encoding='utf-8')
    request_url = request_url + "?access_token=" + access_token
    # 調用post請求方法
    face_info = get_info_post_json_data(request_url, params)
    # json字符串轉對象
    face_json = json.loads(face_info)
    print(face_info)
    if face_json['error_msg'] == 'SUCCESS':
        # 如果沒有發現人像,會返回空
        if face_json['result']['face_num'] == 0:
            face_dict = {}
        else:
            # 把想要的部分提取存入字典中
            result = face_json['result']['face_list'][0]
            gender = result['gender']['type']
            age = str(result['age'])
            beauty = str(result['beauty'])
            face_dict = {"gender": gender, "age": age, "beauty": beauty}
    return face_dict

注意此處有坑,說說我入坑的過程。申請完ak和sk之后我調用人臉識別的api。返回的消息是:{‘error_code': 6, ‘error_msg': ‘No permission to access data'}。我一查官方文檔說是沒有獲取用戶數據的權限。需要啥權限呢,難道調用這個接口還需要申請權限?不是有ak和sk嗎?各種百度,無果。放棄了。晚上繼續搞,這次從官方文檔入手找原因。無意看到說是api升級了。從v2升級到了v3。我申請的ak和sk對應的是v3版的。而我調用的接口確實v2版的。具體體現在請求URL的區別上,所以苦苦找不到原因。從入坑的經歷獲取的教訓是:一定要仔細看官方文檔;找不出bug的時候,就先放一放,回頭再看,就會茅塞頓開,一切迎刃而解。

下面給出正常調用api返回的json數據

{
    "error_code":0,
    "error_msg":"SUCCESS",
    "log_id":304592828857184421,
    "timestamp":1542885718,
    "cached":0,
    "result":{
        "face_num":1,
        "face_list":[
            {
                "face_token":"9ae54ea1941d2b9d8a7e881f3ae39fe1",
                "location":{
                    "left":374.5,
                    "top":406.94,
                    "width":140,
                    "height":136,
                    "rotation":30
                },
                "face_probability":0.99,
                "angle":{
                    "yaw":-12,
                    "pitch":10.26,
                    "roll":29.76
                },
                "age":21,
                "beauty":53.22,
                "gender":{
                    "type":"female",
                    "probability":1
                }
            }
        ]
    }
}

人臉識別這塊。是根據你調用接口所傳的參數來返回你需要的值。傳的參數越多,返回消息越詳細。我這里只獲取年齡,性別,顏值這幾個參數。同樣v2版的接口和v3版的接口返回的數據格式也是有區別的。
對符合條件的視頻點贊和評論
獲取到api返回的數據后就是一些判斷。我這里的判斷是:如果識別到人臉,年齡在18歲以上,顏值在40以上。就點贊+評論。

具體實現

'''
將獲得的數據進行分析
face_dict:人臉識別后的數據
'''


def analysis_face(face_dict):
    # 如果發現人臉繼續判斷
    if len(face_dict) != 0:
        # 如果為女生
        if face_dict["gender"] == "female":
            print("性別:女")
            print("年齡:" + face_dict["age"])
            print("顏值:" + face_dict["beauty"])
            # 如果顏值在40以上,并且年齡大于18繼續
            if float(face_dict["beauty"]) > 40 and float(face_dict["age"]) > 18:
                # 點贊
                commentaries()
                print("------------------捕獲小姐姐一枚------------------")
                print("------------------顏值好高哦,已點贊?------------")
            else:
                print("顏值不及格,繼續努力,下一個")
        # 如果為男生
        else:
            print("性別:男")
            print("年齡:" + face_dict["age"])
            print("顏值:" + face_dict["beauty"])
            # 如果顏值在40以上,并且年齡大于18繼續
            if float(face_dict["beauty"]) > 40 and float(face_dict["age"]) > 18:
                # 點贊
                commentaries()
                print("------------------捕獲小哥哥一枚------------------")
                print("------------------顏值好高哦,已點贊?------------")
            else:
                print("顏值不及格,繼續努力,下一個")
    else:
        print("沒有發現小姐姐和小哥哥,下一個")
    # 上滑新視頻
    next_video()

怎么實現點贊和評論呢?沒錯還是使用adb工具。不過這里還需要用到一個Android studio 插件——Android Device Monitor。為什么要用他呢。因為當我們點贊的時候,需要知道點贊這個按鈕在屏幕的具體位置。同理評論也需要知道評論輸入框的坐標位置。

下面來看怎么用Android Device Monitor獲取手機屏幕坐標信息。

連接上手機之后,如上圖4個步驟。就可以獲取到手機屏幕任意一點的位置坐標。這里只需要輸入大概的位置坐標即可。那么這個插件從哪來呢。據說Android Studio3.0之前的版本,都自帶這個插件。而我剛好是3.0之后的版本,所以還需要另外做些工作。具體使用方式如下:

在android-sdk/tools/目錄的命令行中輸入以下內容:monitor。即進入CMD窗口,cd到當時安裝Android-sdk的目錄,再繼續cd到tools目錄下,然后輸入命令monitor,這是期待已久的Android Device Monitor就會出現。因為每款手機的屏幕尺寸可能不一樣。所以下面的參數僅是我手機測量得到的坐標。

下面就是具體點贊評論的實現

# 點贊評論
def commentaries():
    os.system("adb shell input tap 1000 1200")  # 點贊
    time.sleep(0.01)
    os.system("adb shell input tap 1000 1400")  # 點擊評論按鈕
    time.sleep(0.05)
    os.system("adb shell input tap 50 2000")  # 獲取EditText輸入框焦點
    os.system("adb shell am broadcast -a ADB_INPUT_TEXT --es msg '真好真好'")  # 評論
    os.system("adb shell input tap 1000 1860")  # 發送評論
    time.sleep(1)
    os.system("adb shell input tap 500 100")  # 退回主界面

這里還有一點需要注意:adb shell input text 不支持中文輸入。只能輸入'hello world'這樣的英文,輸入英文前也是需要將鍵盤切換到英文輸入模式下的。繼續百度,如何實現中文輸入,發現另一個神器—ADBKeyBoard.apk,一款老外寫的輸入法。完美解決不能輸入中文的問題。源碼地址:https://github.com/senzhk/ADBKeyBoard。安裝這個app。并將默認輸入法切換成ADBKeyBoard。

最后提醒大家,抖音會限制一個賬號在一段時間內的評論次數,長時間高頻率的評論抖音就會暫時關掉你的評論權限。

以上是“Python中怎么實現自動化刷抖音”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榆林市| 汕头市| 东山县| 万全县| 海城市| 额尔古纳市| 灯塔市| 马关县| 社旗县| 连山| 东乡县| 水富县| 全州县| 塘沽区| 德兴市| 扶绥县| 通海县| 平谷区| 临邑县| 来安县| 柳江县| 钦州市| 扎囊县| 延长县| 资源县| 焦作市| 仙居县| 常熟市| 石楼县| 宁晋县| 玛曲县| 贵阳市| 四会市| 崇明县| 芒康县| 遂溪县| 吉木萨尔县| 临高县| 长沙市| 天峻县| 建湖县|