亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

怎么使用Python下載抖音各大V視頻

發布時間:2021-11-12 10:38:54 來源:億速云 閱讀:206 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關怎么使用Python下載抖音各大V視頻,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

思路

先說下思路,要批量下載視頻,可以先嘗試成功下載一個,確定沒有水印,然后在寫一個循環進行批量下載。

難點:下載一個視頻可能很簡單,但下載多個就稍微有點復雜,需要抓取多個視頻對應的 url,抖音這塊做了防爬措施,只允許手機上看到個人主頁的視頻列表,電腦端的網頁卻看不到,這就需要抓取手機的 https 包,這里借助 Burpsuite 進行抓包。

怎么使用Python下載抖音各大V視頻

這里面有個 play_addr,內部有個 urllist,我們復制這個 urllist[0] 在瀏覽器打開,網站跳轉到了真正的播放地址,同時可以看到下載的按鈕:

下載這個視頻,發現是帶水印的,如何下載到不帶水印的視頻呢?網上搜索了下,方法就是將上述 urllist[0] 中的 playwm 改成 play 就可以了。

然后開始寫代碼,獲取這個 urllist[0],并下載

def get(share_url) -> dict:
    """
    share_url -> 抖音視頻分享url
    返回格式 [{'url':'', 'title','format':'',},{}]
    """
    data = []
    headers = {
        'accept': 'application/json',
        'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
    }
    api = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={item_id}"

    rep = requests.get(share_url, headers=headers, timeout=10)
    if rep.ok:
        # item_id
        item_id = re.findall(r'video/(\d+)', rep.url)
        if item_id:
            item_id = item_id[0]
            # video info
            rep = requests.get(api.format(item_id=item_id), headers=headers, timeout=10)
            if rep.ok and rep.json()["status_code"] == 0:
                info = rep.json()["item_list"][0]
                tmp = {}
                tmp["title"] = info["desc"]

                #去水印的視頻鏈接
                play_url = info["video"]["play_addr"]["url_list"][0].replace('playwm', 'play')
                tmp["url"] = play_url
                tmp["format"] = 'mp4'
                data.append(tmp)

    return data

if __name__ =='__main__':
    videos = get('https://www.iesdouyin.com/share/video/6920538027345415431/?region=&mid=6920538030852885262&u_code=48&titleType=title&did=0&iid=0')
    for video in videos:
        downloader.download(video['url'],video['title'],video['format'],'./download')

這里 downloader.download 函數,與前文知乎視頻下載 里的函數一樣,這里就不貼代碼了。

獲取個人主頁視頻鏈接

前兩步已經實現了單個抖音視頻的無水印下載,現在我們要做的就是找到大量的這種鏈接,直接循環就可以了。

任意打開一個大 V 的個人主頁,分享,復制鏈接,使用瀏覽器打開,一個視頻也看不到,而使用抖音 App 就可以看到:

怎么使用Python下載抖音各大V視頻

瀏覽器

怎么使用Python下載抖音各大V視頻

注意不要設置 ip 為 127.0.0.1,這樣設置的話,只有本地請求可以使用代理,手機無法連接此代理。

2、手機設置代理

手機與電腦連接同一 wifi,IPhone 的操作如下:然后進入設置-> 無線局域網 -> 點擊同一 wifi 右邊的 information 符號,然后下拉,點擊配置代理,配置和 BurpSuite 一樣的 ip 和端口。Android 的手機的設置也差不多。至此可以在 BurpSuite 上抓取手機的 http 流量。

3、手機下載 Burp 的證書,并設置信任

  1. 手機瀏覽器 進入 http://burp。

  2. 點擊 CA 下載證書。

  3. 設置->通用->描述文件->點擊 PortSwigger CA->安裝

  4. 設置->通用->關于本機->證書信任設置,將 BurpSuite 的證書開啟

這樣就可以抓取手機上發起的 https 包了。

4、設置 BurpSuite 中斷

怎么使用Python下載抖音各大V視頻

然后打開 BurpSuite 的 Repeater 選項卡,就可以看到剛才發過來的請求,這時我們選擇重放,看數據,決定我們需要使用的接口,如下圖所示:

發現這個接口滿足請求,這里可以看到接口的 url,headers 的各種參數,headers 中的 User-Agent 參數,是區分客戶端是瀏覽器還是 App 的重要標識,因此就可以寫代碼來模擬請求,進而獲取需要的批量下載鏈接。

由于 url 中的參數非常多,有些是固定不變的,有些隨著不同人的主頁參數會發生變化,如果僅僅是自己使用,可以簡單的通過正則表達式來提取這些 url 鏈接,然后進行批量下載就可以了。

如果是想寫好一個腳本供別人使用,那么就需要做更多的工作,比如說,需要查看更多的 api,以便確定 url 及 headers 中的參數是如何獲取或生成的,然后寫腳本自動化這一過程,有些情況下,還涉及到加密混淆等反爬措施,這里就不再展開了,請感興趣的讀者自行探索。

最后的話

爬取視頻的關鍵在于找到視頻的播放地址,有了播放地址,即使不寫代碼,也可以使用瀏覽器下載,尋找播放地址還不夠,要考慮是否能去水印,如果要批量下載,那就要知道如何獲取更多的視頻鏈接,在瀏覽器抓取不到的時候,考慮使用 BurpSuite 抓取手機的流量包,進一步提取接口的數據,或模擬手機請求,對搞爬蟲的同學,BurpSuite 是一個瑞士軍刀,非常實用。

關于“怎么使用Python下載抖音各大V視頻”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

图们市| 吴忠市| 平果县| 贵阳市| 攀枝花市| 老河口市| 洮南市| 岫岩| 安远县| 绿春县| 卢湾区| 儋州市| 澳门| 高平市| 兴山县| 疏附县| 贵溪市| 嘉鱼县| 晴隆县| 龙陵县| 大埔县| 雷州市| 邵东县| 德化县| 乳山市| 河间市| 洮南市| 大同县| 榕江县| 瑞金市| 科技| 衡山县| 尼勒克县| 浠水县| 鹿泉市| 益阳市| 江华| 灵石县| 衡东县| 大姚县| 依兰县|