前言
嗨嘍,大家好!這里是魔王吶~
環(huán)境使用:
- Python 3.8 解釋器
- Pycharm 編輯器
- requests >>> 數(shù)據(jù)請(qǐng)求 第三方模塊 pip install requests
- re
如果安裝python第三方模塊:
win + R 輸入 cmd 點(diǎn)擊確定, 輸入安裝命令 pip install 模塊名 (pip install requests) 回車(chē)在pycharm中點(diǎn)擊Terminal(終端) 輸入安裝命令
如何配置pycharm里面的python解釋器?
選擇file(文件) >>> setting(設(shè)置) >>> Project(項(xiàng)目) >>> python interpreter(python解釋器)點(diǎn)擊齒輪, 選擇add添加python安裝路徑
pycharm如何安裝插件?
選擇file(文件) >>> setting(設(shè)置) >>> Plugins(插件)點(diǎn)擊 Marketplace 輸入想要安裝的插件名字 比如:翻譯插件 輸入 translation / 漢化插件 輸入 Chinese選擇相應(yīng)的插件點(diǎn)擊 install(安裝) 即可安裝成功之后 是會(huì)彈出 重啟pycharm的選項(xiàng) 點(diǎn)擊確定, 重啟即可生效
基本思路流程:
一. 分析數(shù)據(jù)來(lái)源
找尋網(wǎng)址上面視頻數(shù)據(jù)來(lái)自于哪里
開(kāi)發(fā)者工具進(jìn)行抓包..
鼠標(biāo)右鍵點(diǎn)擊檢查 或者 F12打開(kāi)開(kāi)發(fā)者工具刷新網(wǎng)頁(yè)找尋視頻數(shù)據(jù)…找視頻url地址來(lái)于那個(gè)數(shù)據(jù)包 >>> 通過(guò)視頻url地址中一段參數(shù)進(jìn)行搜索, 建議是搜.mp4前面這段內(nèi)容…
二, 代碼實(shí)現(xiàn)過(guò)程: 對(duì)于某些網(wǎng)站 可能需要多次請(qǐng)求,
發(fā)送請(qǐng)求, 對(duì)于找到視頻數(shù)據(jù)包發(fā)送請(qǐng)求獲取數(shù)據(jù), 獲取服務(wù)器返回響應(yīng)數(shù)據(jù)解析數(shù)據(jù), 提取我們想要數(shù)據(jù)內(nèi)容 視頻url地址 視頻標(biāo)題….保存數(shù)據(jù), 保存視頻數(shù)據(jù)到本地文件夾多個(gè)視頻采集
代碼
導(dǎo)入模塊
# import requestsimport requests # 數(shù)據(jù)請(qǐng)求模塊import pprint # 格式化輸出模塊import refor page in range(2, 6): print(f’正在采集第{page}頁(yè)的數(shù)據(jù)內(nèi)容’) link = f’https://v.huya.com/g/all?set_id=51&order=hot&page={page}’ headers = { ‘user-agent’: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36’ } 源碼解答教程可加Q群:261823976免費(fèi)領(lǐng)取哦~ html_data = requests.get(url=link, headers=headers).text # print(html_data) # 使用re正則表達(dá)式提取數(shù)據(jù) 從什么地方去獲取什么數(shù)據(jù) #
# cookie 用戶(hù)信息, 常用于檢測(cè)是否登陸賬號(hào) # headers = { # ‘user-agent’: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36’ # } # 通過(guò)requests模塊里面get請(qǐng)求方法對(duì)于url地址發(fā)送請(qǐng)求, 并且攜帶上headers請(qǐng)求頭偽裝, 最后用自定義變量response接受返回?cái)?shù)據(jù) response = requests.get(url=url, headers=headers) # print(response.json()) # 200表示請(qǐng)求成功 response.json() 返回?cái)?shù)據(jù)一定是完整json數(shù)據(jù)格式 # pprint.pprint(response.json()) # 解析數(shù)據(jù) 字典取值 根據(jù)鍵值對(duì)取值 {‘鍵’: ‘值’, ‘鍵1’: ‘值1’} 根據(jù)冒號(hào)左邊的內(nèi)容, 提取冒號(hào)右邊的內(nèi)容 title = response.json()[‘data’][‘moment’][‘title’] title = re.sub(r'[/:*?”|r]’, ”, title) video_url = response.json()[‘data’][‘moment’][‘videoInfo’][‘definitions’][0][‘url’] print(title) print(video_url) # 保存數(shù)據(jù) 需要對(duì)于視頻播放地址, 發(fā)送請(qǐng)求獲取數(shù)據(jù)內(nèi)容 # 源碼解答教程可加Q群:261823976免費(fèi)領(lǐng)取哦~ video_content = requests.get(url=video_url, headers=headers).content with open(‘video’ + title +video_id + ‘.mp4′, mode=’wb’) as f: # as 重命名為 f f.write(video_content) # f = open(‘video’ + title + ‘.mp4′, mode=’wb’) # f.write(video_content) # f.close()
尾語(yǔ)
成功沒(méi)有快車(chē)道,幸福沒(méi)有高速路。
所有的成功,都來(lái)自不倦地努力和奔跑,所有的幸福都來(lái)自平凡的奮斗和堅(jiān)持
——?jiǎng)?lì)志語(yǔ)錄
本文章就寫(xiě)完啦~感興趣的小伙伴可以復(fù)制代碼去試試
你們的支持是我最大的動(dòng)力??!記得三連哦~ 歡迎大家閱讀往期的文章呀~
鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。