嗨嘍~大家好呀,這里是魔王吶 ? ~!
所用軟件
Python 3.10 解釋器
Pycharm 編輯器
使用的模塊
requests ——>數(shù)據(jù)請(qǐng)求
re ——>正則表達(dá)式模塊
requests是第三方模塊旅挤,win + R 輸入cmd 輸入安裝命令 pip install requests 安裝即可踢关,re 是自帶的模塊,無需安裝粘茄。
實(shí)現(xiàn)思路與流程
一. 數(shù)據(jù)來源分析
- 明確需求: 明確采集的網(wǎng)站以及數(shù)據(jù)內(nèi)容
- 網(wǎng)址: https://www.某牙.com/video/play/933940354.html
- 數(shù)據(jù): 視頻標(biāo)題 / 視頻內(nèi)容 <主要數(shù)據(jù)>
- 抓包分析: 瀏覽器開發(fā)者工具去抓包
- 打開開發(fā)者工具: F12 / 右鍵點(diǎn)擊檢查選擇network (網(wǎng)絡(luò))
- 刷新網(wǎng)頁: 網(wǎng)頁相關(guān)數(shù)據(jù)內(nèi)容
- 通過關(guān)鍵字去搜索找到對(duì)應(yīng)的數(shù)據(jù)包位置
搜索: M3U8 -> getMomentContent
數(shù)據(jù)包地址: https://某牙.com/moment/getMomentContent
二. 代碼實(shí)現(xiàn)步驟
- 發(fā)送請(qǐng)求 -> 模擬瀏覽器對(duì)于url地址發(fā)送請(qǐng)求
- 獲取數(shù)據(jù) -> 獲取服務(wù)器返回響應(yīng)數(shù)據(jù)
- 解析數(shù)據(jù) -> 提取視頻標(biāo)題 / 鏈接
- 保存數(shù)據(jù) -> 獲取視頻數(shù)據(jù)保存本地文件夾里面
源碼展示
發(fā)送請(qǐng)求 -> 模擬瀏覽器對(duì)于url地址發(fā)送請(qǐng)求
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}
url = f'https://某牙.com/moment/getMomentContent?videoId=904494849&uid=&_=1700050245436'
# 發(fā)送請(qǐng)求
response = requests.get(url=url, headers=headers)
獲取數(shù)據(jù) -> 獲取服務(wù)器返回響應(yīng)數(shù)據(jù)
json_data = response.json() # json() 括號(hào)里面不需要加?xùn)|西
解析數(shù)據(jù) -> 提取視頻標(biāo)題 / 鏈接
# 提取標(biāo)題
title = json_data['data']['moment']['title']
# 提取視頻鏈接
video_url = json_data['data']['moment']['videoInfo']['definitions'][0]['url']
保存數(shù)據(jù) -> 獲取視頻數(shù)據(jù)保存本地文件夾里面
video_content = requests.get(url=video_url, headers=headers).content
with open('video\\' + title + '.mp4', mode='wb') as f:
# 寫入數(shù)據(jù)
f.write(video_content)
print(title, video_url)
效果展示
播放效果我就不展示了签舞,影響不好,大家自行觀看~
尾語
最后感謝你觀看我的文章吶~本次航班到這里就結(jié)束啦 ??
希望本篇文章有對(duì)你帶來幫助 ??柒瓣,有學(xué)習(xí)到一點(diǎn)知識(shí)~
躲起來的星星??也在努力發(fā)光儒搭,你也要努力加油(讓我們一起努力叭)。