中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

下載抖音好看視頻的方法

發布時間:2020-07-02 11:06:36 來源:億速云 閱讀:219 作者:清晨 欄目:編程語言

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

鄭重申明:該文章介紹的技術僅供用于學習,不可惡意攻擊抖音網站。對抖音服務器造成的任何損失,后果自負。

需要用到的工具:
**1、Chrome瀏覽器(如Chrome,裝了httpwatch的IE瀏覽器等)+ charles(個人比較喜歡的抓包工具)
2. Pycharm(任何一個自己熟悉的編譯器即可)

其實在該軟件的編寫過程中,個人認為是分為兩個部分。
1.視頻抓包地址的分析以及獲取
2.界面邏輯代碼的編寫

一、視頻地址的分析與抓取
1.我們先在自己的手機端的抖音軟件上選取一個自己像下載的視頻,并通過連接分享給別人

下載抖音好看視頻的方法

2.我們在Chrome上面輸入上文的鏈接,并點擊右鍵–設置–network 。再單獨打開charles軟件。點擊回車鍵開始獲取內容

下載抖音好看視頻的方法

我們會發現我們在瀏覽器初始輸入的地址變成了下方的地址。其實這里涉及爬蟲的一個重定向問題( 重定向(Redirect)就是通過各種方法將各種網絡請求重新定個方向轉到其它位置(如:網頁重定向、域名的重定向、路由選擇的變化也是對數據報文經由路徑的一種重定向)。)

在這里的流程其實就是:先跳轉到我填寫的網址—根據當前網址的重定向信息獲取到定向后的位置(即 location中的位置)

下載抖音好看視頻的方法

我們現在倒是能夠打開視頻進行播放了,但是我們怎么知道視頻的實際地址在哪里呢?我們要如何進行下載呢?

下載抖音好看視頻的方法

其實上面的圖片即是我們這兩個步驟在charles上對應的抓取到的信息。但是當我們點擊播放鍵的時候,我們在charles上就能發現不一樣的地方。下圖是點擊播放鍵以后抓取的信息

下載抖音好看視頻的方法

細心的朋友可能會看到,當我們點擊視頻的時候他會自動跳轉到一個地址,并進行緩存。但是這個地址的是在哪里找呢?這是最關鍵的一步。

通過仔細的分析,我發現視頻的播放地址藏在 這個地址的響應體里面(這是一個隨時變化的地址,我們在這里通過正則表達式能夠很好的獲取)

下載抖音好看視頻的方法

當我們獲取到這個地址以后,繼續發送請求發現該地址也是一個重定向地址,其實視頻的最終地址是在下圖(也就是圖四進行視頻緩存的地址):

下載抖音好看視頻的方法

對該地址發送請求以后,會發現他它的響應體是字節流(我們直接將二進制流寫入文件即可保存)

下載抖音好看視頻的方法

二、界面邏輯代碼

界面搭建所需要的組件和布局其實每個人都有自己的理解和審美,所以這里僅僅展示上面對地址的抓取和視頻下載。

import requests
import re
import random
import time
from PyQt5.Qt import *

class api(QObject):
    downSignal = pyqtSignal(list)
    def __init__(self,url,saveFilename):
        """
        :param url: 視頻地址
        :param saveFilename: 保存的文件名
        """
        super(api, self).__init__()
        self.session = requests.session()
        self.url = url
        self.savename = saveFilename
        userAgent = [
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1",
            "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0",
            "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
            "Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50"]
        key = random.randint(0, 3)
        self.headers = {'content-type': 'application/json', 'User-Agent': userAgent[key]}

    def getdoumload(self):
        """
        作用:獲取最終的視頻的下載地址
        :return: 
        """
        
        try:
            url =self.url
            rep = self.session.get(url, headers=self.headers, verify=False)  # 獲取跳轉的鏈接
            self.downLoadUrl = re.findall("playAddr:(.*)", rep.text)[0].split('"')[1]  # 獲取視頻的下載地址,會進行重定向
        except:
            self.downLoadUrl = "parse error"
        return self.downLoadUrl



    def downLoadVideo(self):
        """
        作用:對視頻文件進行保存,并發送信號給主界面
        :return: 
        """
        try:
            r = self.session.get(self.downLoadUrl, headers = self.headers,verify = False)
            length = float(r.headers['content-length'])
        except:
            return False
        count = 0
        time1 = time.clock()

        with open(self.savename, 'wb') as f:
            for chunk in r.iter_content(chunk_size=512):
                if chunk:
                    f.write(chunk)
                    count += len(chunk)
                    p = count / length * 100
                    intervals = time.clock() - time1
                    speed = count / 1024 / 1024 / intervals
                    self.downSignal.emit([p, speed])




if __name__ == '__main__':
    url = " https://v.douyin.com/J1cGcN5/"
    apt = api(url,"./xx.mp4")
    if apt.getdoumload() != "parse error":
        apt.downLoadVideo()

關于下載抖音好看視頻的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

陇南市| 阳谷县| 庆阳市| 阿拉善左旗| 汶川县| 潼南县| 德清县| 青冈县| 玉龙| 南昌县| 赤峰市| 色达县| 涟水县| 水城县| 奈曼旗| 百色市| 昂仁县| 波密县| 南陵县| 巢湖市| 常山县| 宁安市| 潞城市| 义乌市| 旅游| 井陉县| 察哈| 江安县| 东安县| 柳河县| 博乐市| 南岸区| 鲜城| 利川市| 南投县| 宜宾县| 浙江省| 大埔区| 宁津县| 深州市| 沅陵县|