Python新手爬蟲四:爬取視頻


老樣子,先上最后成功源碼(在D盤下創建'好看視頻'文件夾,直接運行即可獲取視頻):

import sys
import re,os
import requests
from you_get import common as you_get

def getVideo(url,path,headers):
    demo = requests.get(url,headers=headers)  # 獲取網站信息
    data = demo.json()  # 轉換為JSON格式
    data_list = data['data']['response']['videos']  # 獲取每個視頻的屬性列表

    # 遍歷,將每一個視頻信息展示出來
    for i in data_list:
        title = i['title'] + '.mp4'  # 獲取視頻名稱(描述),視頻要修改為的名稱,為后邊改名做准備
        url1 = i['play_url']  # 獲取視頻源url
        videoName = re.split('\?|/',url1)[5][:80]+'.mp4'  # 視頻下載后,會是一大串字母和數字的組合,這個主要就是獲取視頻下載后的原名稱

        # 開始下載
        print('開始下載:' + title)
        try:
            sys.argv = ['you_get', '-o',path,url1]  # 視頻的屬性編輯,選擇路徑等
            you_get.main()  # 開始下載
            print('👆下載完成')
            os.rename(path + videoName, path + title)  # 下載完成后,改名操作
        except:
            print(title + '下載失敗!')
if __name__ == '__main__':
    url = 'https://haokan.baidu.com/videoui/api/videorec?tab=yingshi&act=pcFeed&pd=pc&num=20&shuaxin_id=1592551368953'
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36 Edg/83.0.478.54',
        'cookie': 'BIDUPSID=517516CBF0261FA0AF6B039EAFEDF39C; PSTM=1589624436; BAIDUID=517516CBF0261FA090A0395C8BF0F31A:FG=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; PC_TAB_LOG=haokan_website_page; Hm_lvt_4aadd610dfd2f5972f1efee2653a2bc5=1592530622,1592545903; H_PS_PSSID=31906_1444_31671_21118_31254_32045_30823_32111; delPer=0; PSINO=2; yjs_js_security_passport=d270bf2526b634428ea81932e213c285b8e7cf21_1592546748_js; Hm_lpvt_4aadd610dfd2f5972f1efee2653a2bc5=1592550475; reptileData=%7B%22data%22%3A%22e3b78a008f54876b4fc19fe55faea5fb1ae054d9580474b00db252837ba6a6554cbfde0ada4567b9cad2322c5d972031cb300664e248e8f4a7b27fd91a479f4e02a1e7eceffa642289eba12075334687515e1451aa72eced7ac42e3fbb88a87139c95727da119f5dd9b85d281d98d4d98b943f43a06c3f13e6b63b812c5c40ce%22%2C%22key_id%22%3A%2230%22%2C%22sign%22%3A%2243b164d6%22%7D'}
    path = r'D:\好看視頻\\'

    getVideo(url,path,headers)

下載過程:

 

 

 

視頻展示: 因為爬取的是推薦視頻,每次執行會獲取不同的視頻。

 

 

 

先來介紹一下所用到的庫

1、requests庫:眾所周知,爬蟲神器

2、re庫:主要用來split

3、sysyou-get庫:主要任務下載視頻

4、os庫:用來修改文件名

 

注意:庫沒安裝記得pip install 庫名

 

下邊捋一下思路

1、進入好看視頻網站—>影視(或者推薦隨便哪個分類)—>隨便找個視頻右擊—>檢查

 

 

 

2、選擇網絡>XHR>選擇包

獲取到當前界面

 

 

 

3、展開data>response>videos層層扒開

會發現所有的視頻idtitle都在這里,格式是JSON

 

 

 

4、再來展開其中一條視頻的信息,下邊還有,截屏不全,視頻所有的信息都在這了

 

 

 

5、我們主要用到的有titleplay_url,你會發現,箭頭所指的方向還有一個url標簽,當你不確定url到底是哪個時,你可以直接復制到瀏覽器打開查看一下

 

 

 

 

6、到這里,視頻的名稱和url就已經獲取到了,具體的實現過程就看上邊的源碼吧,基本都有注釋

7、這里要簡單說一下you-get庫,是個非常強大的下載視頻庫,除了在腳本上應用,也可以直接在cmd中執行,先看下它支持的選項:

主要用到的有兩個,一個是 -o 指定路徑,另一個是--debug主要在錯誤時打印日志

 

比如隨便找個B站視頻下載下來:

 

是不是巨方便


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM