前幾天,我分享了一篇文章,里面講的是用戶GUI下載包含B站在內(nèi)的視頻的Python程序。今天我們以國內(nèi)第一支主打中國風(fēng)的女子組合--七朵組合為例,利用之前的分享的知識,下載UP主的所有B站視頻。
一代七朵-詠春
先看下七朵組合的百度百科(這個(gè)時(shí)候已經(jīng)更新為最新的五位成員了):
七朵組合,中國內(nèi)地女子演唱組合,由喻筱博、顏靈蘭、韋歡、吳圓圓、劉木子五位成員組成。2012年6月28日,推出組合首支單曲《詠春》,從而正式出道 [1] ;10月23日,演唱的歌曲《心慌慌》獲得“鵬城歌飛揚(yáng)”深圳原創(chuàng)音樂第三季度十佳金曲獎(jiǎng) [2] ;12月9日,憑借單曲《詠春》獲得香港TVB8金曲榜年度最佳新人獎(jiǎng)以及年度最佳組合獎(jiǎng)提名 [3] 。2013年5月17日,發(fā)布中國風(fēng)單曲《玉生煙》;11月13日,推出“歡”季戀歌單曲《宮商角徵羽》 [4] 。2014年2月14日,發(fā)布情人節(jié)單曲《蝴蝶戀》 [5] ;4月16日,獲得音悅臺(tái)V-Chart Awards頒獎(jiǎng)典禮“最具人氣潛力獎(jiǎng)”的提名 [6] 。2017年,發(fā)布了中國風(fēng)單曲《青蛇》。2018年1月21日,發(fā)布中國風(fēng)單曲《將軍令》 [7] ;10月22日,參加“古畫會(huì)唱歌”音樂創(chuàng)新大賽,單曲《墨染梅霜》以第一名的成績進(jìn)入決賽圈 [8] 。2019年1月11日,發(fā)行中國風(fēng)單曲《女俠》 [9] 。
回歸七朵-青蛇
在我的印象里,第一次認(rèn)識七朵組合,是在2014年安徽衛(wèi)視的春節(jié)聯(lián)歡晚會(huì)上,七朵組合在舞臺(tái)上像7只美麗的百靈鳥,表演著她們的中國風(fēng)歌曲《詠春》,她們美麗的身姿深深地吸引到了我,從那以后,她們出的每一首歌,我都聽過,有喜歡的,也有不喜歡的。即使有不喜歡的,我依然要全力向大家推薦她們,因?yàn)樗齻兲芳t了!
七朵不紅,天理難容!
印象比較深刻的歌曲有很多:《詠春》、《落花情》、《揚(yáng)州慢》、《玉生煙》、《孔明》、《青蛇》、《醉花蔭》、《江南夜》等等。
最特別的,詠春的春節(jié)特別版,圓圓的兩聲yayiyayiyou,讓人回味無窮;孔明中歡歡的最后那幾句,孔明恐恐恐,也怕女兒夢,陪你喝兩盅,再去對隆中,獨(dú)守著空城,南陽夜也冷,寒月照三更,琵琶惹古箏,你獨(dú)守著,準(zhǔn)我為你折腰,也是點(diǎn)睛之筆。
最近還新出了一首《哪吒》,也是非常好聽!!!趕緊去聽吧!!!
好啦,回歸正題:
思路:
(1)獲取UP主所有視頻的id,結(jié)合播放頁面https://www.bilibili.com/video/av65732818,可以看出,id即為av后面的數(shù)字,即只要獲取到id,即可得到所有的視頻播放鏈接;
(2)利用you-get,一個(gè)一個(gè)下載;
缺點(diǎn):不能多進(jìn)程下載,下載進(jìn)度緩慢。
開始解析:
1、打開七朵組合的投稿頁面
按照之前分享過的方法,找到這些視頻的鏈接在哪里!
2、鼠標(biāo)右鍵(Chrome)--檢查--F5--Network--XHR,可以看到這樣一條信息
這里面包含著我們想要的視頻的id信息!
有人問,為啥你這么快就找到了呢?你怎么找的呢?
其實(shí)基本的兩種方法還是有的,但是像網(wǎng)易云音樂那種加密的除外!
(1)Ctrl+F,搜索原頁面中包含的信息;
(2)看XHR項(xiàng)的大小,能達(dá)到kb級別的很有可能是你需要的東西;
然后我們開始點(diǎn)擊下一頁,可以發(fā)現(xiàn)是這樣的
又出現(xiàn)了一條和上一頁面類似的鏈接,比較發(fā)現(xiàn),只有page的參數(shù)不一致,那就循環(huán)page就行啦!
好啦,分析到此結(jié)束!
代碼如下:
# author:Jinbu Zhang
# 目的:爬取嗶哩嗶哩視頻某位作者的所有視頻
# 思路:1、獲取該作者在B站發(fā)布的所有視頻地址;2、調(diào)用you-get庫下載到指定路徑
import requests import json import you_get import os import time import random import sys import winreg headers = {"User-Agent":"Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/73.0.3683.103 Safari/537.36"} def get_desktop(): key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'SoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders') return winreg.QueryValueEx(key, "Desktop")[0] save_path = get_desktop() + '\' + 'you_get'+'\' if not os.path.exists(save_path): os.mkdir(save_path) # 播放頁視頻下載 def download_mv_bilibili(mv_id): mv_id_download = 'https://www.bilibili.com/video/av'+str(mv_id) os.system("you-get -o %s %s"%(save_path,mv_id_download)) # 對得到的json數(shù)據(jù)進(jìn)行解析(字典訪問形式) def explain_json(json_data): mv_datas = json_data['data']['vlist'] mv_infors = [] for mv_data in mv_datas: mv_title = mv_data['title'] mv_author = mv_data['author'] # 41842701 mv_id = mv_data['aid'] mv_length = mv_data['length'] mv_description = mv_data['description'] mv_cover = mv_data['pic'] mv_play = mv_data['play'] mv_comment = mv_data['comment'] print('==' * 60) time.sleep(0.5) print('>>%s...'%mv_title) print('>>>https://www.bilibili.com/video/av%s' % mv_id) print('==' * 60) # 下載MV&視頻 # download_mv_bilibili(mv_id) # 對URL進(jìn)行訪問,得到的數(shù)據(jù)進(jìn)行解析 def get_html(access_url): response = requests.get(access_url,headers=headers) html = response.text json_data = json.loads(html) mv_infor = explain_json(json_data) # 主函數(shù)拼湊URL def main(): base_url = 'https://space.bilibili.com/ajax/member/getSubmitVideos?mid=43636152&pagesize=30&tid=0&page={}&keyword=&order=pubdate' for k in range(1,4): time.sleep(2) access_url = base_url.format(k) html = get_html(access_url) if __name__ == "__main__": main()
結(jié)果展示:
好啦,今天的python爬蟲分析就到這里,有需要交流的可以私信或者加我的微信【其他文章中留過,大家記得關(guān)注我,以后會(huì)給大家分享更多!】
謝謝啦!