定制級(jí)高端網(wǎng)站建設(shè)seo搜索引擎實(shí)訓(xùn)心得體會(huì)
前言
嗨嘍~大家好呀,這里是魔王吶 ? ~!
完整源碼、python資料: 點(diǎn)擊此處跳轉(zhuǎn)文末名片獲取
當(dāng)我在首頁刷到這些的時(shí)候~
我的心里逐漸浮現(xiàn)一個(gè)邪念:我把這些小姐姐全都采集,可以嘛?
答案當(dāng)然是可以的~畢竟就我這技術(shù),怎么可能難倒呢!!
開發(fā)環(huán)境:
首先我們先來安裝一下寫代碼的軟件(對(duì)沒安裝的小白說)
-
版 本: python 3.8
-
編輯器: pycharm 2022.3.2 專業(yè)版
軟件安裝好后,再來安裝一下要用到的第三方模塊
- requests >>> pip install requests
安裝第三方模塊方法:win + R 輸入cmd 輸入安裝命令 pip install 模塊名
(如果你覺得安裝速度比較慢, 你可以切換國內(nèi)鏡像源)
再就是最后合并視、音頻要用到的合并軟件
- ffmpeg
實(shí)現(xiàn)一個(gè)案例的流程:
一. 思路分析
案例的分析 media .mp4 .mp3 .m4a m3u8視頻流
.m4s:
shi頻/音頻 格式
數(shù)據(jù)來源分析: 找到shi頻內(nèi)容
network抓包
查看網(wǎng)頁源代碼
-
如果在XHR當(dāng)中沒有找到數(shù)據(jù)
搜索了, 篩選了 就是找不到
-
*仔細(xì)觀察網(wǎng)頁源代碼
二. 代碼實(shí)現(xiàn)基本流程
-
發(fā)送請(qǐng)求 使用代碼的方式訪問網(wǎng)站
-
獲取數(shù)據(jù) 取出網(wǎng)頁源代碼
-
解析數(shù)據(jù) 提取shi頻鏈接
-
保存數(shù)據(jù)
代碼展示:
導(dǎo)入模塊
import requests
import re # 正則表達(dá)式模塊
import json
import pprint
import subprocess
import os
偽裝(請(qǐng)求頭)
headers = {# 用戶信息"cookie": "buvid3=355AA300-6A61-04E5-A05C-E891D886F69632716infoc; b_nut=1675085932; i-wanna-go-back=-1; _uuid=387EA3810-FBF5-E92C-827E-2510B578C5B9A33232infoc; buvid4=15C69C98-F6A7-EC6A-872F-E69C1840DD6D33724-023013021-1pW1w45e5fZS9RtebDiGZw%3D%3D; nostalgia_conf=-1; CURRENT_FNVAL=4048; rpdid=|(kmJY|k))lY0J'uY~l|)lmY|; SESSDATA=17eb9f1a%2C1690782878%2C6a25c%2A22; bili_jct=4af9076b42f76603dfe4cf018ad2000f; DedeUserID=422789639; DedeUserID__ckMd5=fc4901c78719b545; CURRENT_QUALITY=80; b_ut=5; b_lsid=51ED8F105_1861C3EEC10; theme_style=light; is-2022-channel=1; sid=66dafqju; fingerprint=97ca5a8b555e63aca787c9cd27273c7e; buvid_fp_plain=undefined; buvid_fp=8cc52ae38b592ff26dc2b393eebd890b; PVID=2; innersign=1; bp_video_offset_422789639=758803412994228200",# 防盜鏈"referer": "https://****.com/",# 瀏覽器基本信息"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}
url = 'https://****.com/video/BV1qv4y1k7UE/?vd_source=8f216a44bce0dbe14e3447c34c2ab3e2'
- 發(fā)送請(qǐng)求
response = requests.get(url, headers=headers)
- 獲取數(shù)據(jù)
html_data = response.text
- 解析數(shù)據(jù)
# __playinfo__=(.*?)</script>
json_str = re.findall('__playinfo__=(.*?)</script>', html_data)[0]
# <h1 .*?>(.*?)</h1>
title = re.findall('<h1 .*?>(.*?)</h1>', html_data)[0]
Python基礎(chǔ) 字典
json_data = json.loads(json_str)
# pprint.pprint(json_data)
audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
print(audio_url)
video_url = json_data['data']['dash']['video'][0]['baseUrl']
print(video_url)
- 保存數(shù)據(jù)
audio_data = requests.get(audio_url, headers=headers).content
with open(f'{title}.mp3', mode='wb') as f:f.write(audio_data)
video_data = requests.get(video_url, headers=headers).content
with open(f'{title}.mp4', mode='wb') as f:f.write(video_data)ffmpeg = f'ffmpeg -i {title}.mp4 -i {title}.mp3 -acodec copy -vcodec copy {title+"-out.mp4"}'
subprocess.run(ffmpeg)
os.remove(f'{title}.mp4')
os.remove(f'{title}.mp3')
尾語 💝
要成功,先發(fā)瘋,下定決心往前沖!
學(xué)習(xí)是需要長期堅(jiān)持的,一步一個(gè)腳印地走向未來!
未來的你一定會(huì)感謝今天學(xué)習(xí)的你。
—— 心靈雞湯
本文章到這里就結(jié)束啦~感興趣的小伙伴可以復(fù)制代碼去試試哦 😝