1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ``` ### 需求 本人是老蚕的粉丝,特别喜欢他的电子《电子战》,奈何最近他的《电子战》系列全部下架了,为了能够收藏这部视频,所以想借助各种工具及python爬虫代码,将该系列视频全部下载下来。 主要技术路线,如下:(如果你知识想拿视频,请看最后,视频会免费分享出来) 1. 哔哩哔哩上有网友转载的《电子战》系列,获取每一集对应的链接。 2. 第一步的链接,无法直接下载,将其放到小程序上转换成可以下载的链接。 3. 将35集的下载链接、文件名,放到python爬虫中,逐个下载成mp4文件。 4. 将mp4文件通过python程序转成mp3文件。 下面开始逐步详细介绍做法! #### step1 : 获取b站分享地址 《电子战》b站地址:[听风的蚕说评书——电子战01【一切从南海撞机开始】\_哔哩哔哩\_bilibili](https://www.bilibili.com/video/BV1cdQ9YdE5M/?spm_id_from=333.1387.homepage.video_card.click&vd_source=7fcee9c8f7f97cef2c1f6f2f8c891159) 逐个每一集点击分享,就可以获得每一集的链接。  ```text 【听风的蚕说评书——电子战01【一切从南海撞机开始】】 https://www.bilibili.com/video/BV1cdQ9YdE5M/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战02【哑巴吃黄连】】 https://www.bilibili.com/video/BV1ixQ9YjEb1/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战03【铭记先驱】】 https://www.bilibili.com/video/BV1LtQdYXE2T/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战04【日本雷达屏幕飘雪花】】 https://www.bilibili.com/video/BV1j4QdYWERg/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战05【兔子千里眼】】 https://www.bilibili.com/video/BV1KSQdYBEGW/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战06【美帝不敢应战】】 https://www.bilibili.com/video/BV1tPQdYuEyP/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战07【鹰酱C4系统如何】】 https://www.bilibili.com/video/BV1d2QRYDEUe/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战08【南昌舰单刀赴会】】 https://www.bilibili.com/video/BV1BkQRYWEnN/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战09【南海潜艇撞击】】 https://www.bilibili.com/video/BV1adQRYyEJ6/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战10【巴铁邻居互掐】】 https://www.bilibili.com/video/BV18fQRYkEvc/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战11【美国人懂面子吗?】】 https://www.bilibili.com/video/BV1UnQRYBEbw/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战11【美国人懂面子吗?】】 https://www.bilibili.com/video/BV1UnQRYBEbw/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战13【大毛打二毛】】 https://www.bilibili.com/video/BV1UbQfYUEMj/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战14【打起来了?】】 https://www.bilibili.com/video/BV1mhQfY7Eso/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战15【斗争纪实】】 https://www.bilibili.com/video/BV1rYXPYHE4v/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战16【接着唱接着舞】】 https://www.bilibili.com/video/BV1neXPYDEQf/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战17【战斗指数】】 https://www.bilibili.com/video/BV1p8XPYWEqu/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战18【高手过招点到为止】】 https://www.bilibili.com/video/BV1zdXAY2EB7/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战19【心潮澎湃】】 https://www.bilibili.com/video/BV1BfXAYyEMi/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战20【美帝核心本质】】 https://www.bilibili.com/video/BV1agXPYTE6w/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战21【地球往事】】 https://www.bilibili.com/video/BV1xtXKYYEk8/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战22【水门事件】】 https://www.bilibili.com/video/BV1FfXNYWEvJ/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战23【教员重塑秩序】】 https://www.bilibili.com/video/BV16oXNY9EDA/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战24【石油美元越战】】 https://www.bilibili.com/video/BV1kXXNY4EZV/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战25【阿富汗连环计】】 https://www.bilibili.com/video/BV1rdXNYsE8Y/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战25【阿富汗连环计】】 https://www.bilibili.com/video/BV1rdXNYsE8Y/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战27【中美对抗历史】】 https://www.bilibili.com/video/BV1tYXHYLENZ/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战28 【大战序幕】】 https://www.bilibili.com/video/BV1utXHYUEmS/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战29【英雄无畏】】 https://www.bilibili.com/video/BV1c2XHYiELX/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战30【残骸里的线索】】 https://www.bilibili.com/video/BV1P6XHYrE95/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战31【2022年的连环计】】 https://www.bilibili.com/video/BV11HXsYJE1d/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战32【安倍晋三之死】】 https://www.bilibili.com/video/BV1neZvYSEFy/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战32A【伊朗和巴铁】】 https://www.bilibili.com/video/BV1vrZHYqETK/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战32A【伊朗和巴铁】】 https://www.bilibili.com/video/BV1vrZHYqETK/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff 【听风的蚕说评书——电子战34【致命任务之区域拒止】】 https://www.bilibili.com/video/BV1LJdkYxEme/?share_source=copy_web&vd_source=43b0b245485ae3aab815b812bcca34ff
step2: 获取下载地址 第一步的链接,是无法直接下载的(貌似下载也是很短的一部分) 需要透过微信小程序去解析出下载链接:
按照1、2、3去点击,就可以获得下载链接了。
step3:python爬虫批量下载 python代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import requestsdef download_video (url, file_name ): headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" } try : response = requests.get(url, headers=headers, stream=True ) response.raise_for_status() with open (file_name, 'wb' ) as file: for chunk in response.iter_content(chunk_size=8192 ): file.write(chunk) print (f"视频下载成功并保存为 {file_name} " ) except requests.exceptions.RequestException as e: print (f"发生错误: {e} " )
with open(file_name, 'wb') as file
:使用 with
语句以二进制写入模式('wb'
)打开一个文件,这样可以确保文件在使用完毕后会被自动关闭。
response.iter_content(chunk_size = 8192)
:这是一个迭代器,它会将响应内容按每块 8192 字节(即 8KB)的大小进行分割,逐块返回。
file.write(chunk)
:将每一块内容写入到打开的文件中。
step4:mp4批量转mp3 python代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 from moviepy import VideoFileClipdef extract_audio_from_mp4 (mp4_file_path, mp3_file_path ): try : video = VideoFileClip(mp4_file_path) audio = video.audio audio.write_audiofile(mp3_file_path) audio.close() video.close() print (f"音频已成功提取并保存为 {mp3_file_path} " ) except Exception as e: print (f"提取音频时出现错误: {e} " ) if __name__ == "__main__" : mp4_file = r''' C:\Users\ \Desktop\爬虫-电子战视频下载\mp4_全集\33_伊朗和巴铁.mp4 C:\Users\ \Desktop\爬虫-电子战视频下载\mp4_全集\34_伊朗和巴铁.mp4 C:\Users\ \Desktop\爬虫-电子战视频下载\mp4_全集\35_致命任务之区域拒止.mp4 ''' my_list = mp4_file.split('\n' ) new_list = [item for item in my_list if item.strip()] totalCnt = len (new_list) idx = 0 for item in mp4_file.split('\n' ): if len (item.strip()) != 0 : idx += 1 mp4_file = item mp3_file = mp4_file.split('.mp4' )[0 ]+".mp3" extract_audio_from_mp4(mp4_file, mp3_file) print (f'[%02d / %02d]' %(idx,totalCnt))
moviepy 部分的核心代码是:
1 2 3 video = VideoFileClip(mp4_file_path) audio = video.audio audio.write_audiofile(mp3_file_path)
总结 至此,已经把《电子战》系列视频全部下载成mp4、mp3文件了: 有需要的,请直接微信公众号回复:电子战,免费领取!纯纯免费! 对了,如果大家对AI、新技术、软件评测感兴趣,可以关注我的微信公众号: 或者个人博客:https://weicun.gitee.io/ 蓝色单车 如果你也喜欢编程、免费文件共享,请加群!