<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
requests >>> pip install requests (資料請求 第三方模組)
re # 正規表示式 去匹配提取資料
json
Python 3.8 直譯器
Pycharm 2021.2 版本 建議
win + R 輸入cmd 輸入安裝命令 pip install 模組名 如果出現爆紅 可能是因為 網路連線超時 切換國內映象源
採集內容, 先分析一個視訊是從哪裡獲取
通過開發者工具進行抓包分析, 分析視訊資料可以從哪裡獲取內容 格式 m3u8視訊內容
當我們網站視訊格式 是m3u8的時候, 有一個專門存放所有ts視訊片段的檔案
1. 傳送請求, 對於視訊播放頁面url地址傳送請求
2. 獲取資料, 獲取伺服器返回response響應資料
3. 解析資料, 提取我們想要的資料內容 視訊標題 以及 m3u8 連結
4. 傳送請求, 對於 m3u8 連結 傳送請求
5. 獲取資料, 獲取伺服器返回response響應資料
6. 解析資料, 提取所有ts檔案url [視訊片段]
7. 儲存資料, 把所有視訊儲存下來, 然後合成為一個整體視訊內容
import requests # 資料請求模組 pip install requests 在cmd裡面 輸入命令 import re # 匯入正規表示式模組 內建模組 import json import pprint # 格式化輸出模組 for page in range(1, 17): print(f'--------------------正在採集第{page}頁的資料內容--------------------') list_url = 'https://www.acfun.cn/u/45321802' # 批次 ctrl + R 選中目標 data = { 'quickViewId': 'ac-space-video-list', 'reqID': page + 1, 'ajaxpipe': '1', 'type': 'video', 'order': 'newest', 'page': page, 'pageSize': '20', 't': '1649944573765', } headers = { # 'cookies': '你的cookie', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36' } # get請求 有一個params引數 # post請求 data 引數 response = requests.get(url=list_url, params=data, headers=headers) # print(response.text) id_list = re.findall('a href=.*?ac(.*?)"', response.text) for index in id_list: video_id = index.replace('\', '') """ 1. 傳送請求, 對於視訊播放頁面url地址傳送請求 用python程式碼去模擬瀏覽器 對於 url地址傳送請求 video """ url = f'https://www.acfun.cn/v/ac{video_id}' # 確定請求url地址 # 請求頭 用偽裝python程式碼, 為了被伺服器識別出來 是爬蟲程式 一種簡單反反爬手段 當你加ua 得到資料的時候, 可能要cookie # 需要登陸才能獲得資料的, 需要加cookie 使用者資訊, 常用於檢測是否登陸賬號 headers = { # 'cookies': '你的cookie', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36' } # 通過requests模組裡面get請求方式, 對於url地址傳送請求, 並且攜帶上headers請求頭偽裝, 最後用response自定義變數接收返回資料 response = requests.get(url=url, headers=headers) # 2. 獲取資料 # print(response.text) # 3. 解析資料 通過re模組裡面findall的方法 在response.text裡面去找尋 標題資料 re.S 匹配換行 # 正規表示式提取出來的資料返回都是列表資料型別 實現過程不重要, 方式方法很多, 你喜歡用哪個都可以 只要可以取到資料都OK title = re.findall('<title >(.*?) - AcFun彈幕視訊網 - 認真你就輸啦 (?ω?)ノ- ( ゜- ゜)つロ</title>', response.text)[0] video_info = re.findall('window.pageInfo = window.videoInfo = (.*?);', response.text)[0] # print(video_info) # 字串轉成字典 怎麼轉 最穩妥檢視資料型別 直接用 type() 這個函數去檢視 json_data = json.loads(video_info) # pprint.pprint(json_data) # 字典取值 根據冒號左邊的內容(鍵) 提取冒號右邊的內容(值) m3u8_url = json.loads(json_data['currentVideoInfo']['ksPlayJson'])['adaptationSet'][0]['representation'][0]['backupUrl'][0] # print(title) # print(m3u8_url) # 通過requests模組裡面get請求方式, 對於m3u8_url地址傳送請求, 並且攜帶上headers請求頭偽裝, 獲取響應體文字資料, 用m3u8_data自定義變數接收資料 m3u8_data = requests.get(url=m3u8_url, headers=headers).text # split() 字串分割 m3u8_data = re.sub('#E.*', '', m3u8_data).split() # print(m3u8_data) for ts in m3u8_data: ts_url = 'https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/' + ts ts_content = requests.get(url=ts_url, headers=headers).content # ab 是什麼意思 a追加儲存, b 二進位制資料 ab 以二進位制資料追加儲存 with open('video\' + title + '.mp4', mode='ab') as f: f.write(ts_content) print('視訊儲存完成: ', title)
到此這篇關於Python實現視訊下載與合成的範例程式碼的文章就介紹到這了,更多相關Python視訊下載 合成內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45