当前位置:   article > 正文

python爬虫--B站视频+歌曲合并(代码展示)_爬取b站视频

爬取b站视频

I want my tears back,

I want my tears back now.

愿偿少年泪,犹趁未老时。


需要在代码运行前先下载性对应安装包:(建议使用国内源,比较快)

pip install lxml -i http://mirrors.aliyun.com/pypi/simple/

pip install xlwt -i https://mirrors.aliyun.com/pypi/simple/

pip install lxml -i https://mirrors.aliyun.com/pypi/simple/

pip install html5lib -i https://mirrors.aliyun.com/pypi/simple/

pip install pyinstaller -i https://mirrors.aliyun.com/pypi/simple/

pip install pillow -i https://mirrors.aliyun.com/pypi/simple/

pip install moviepy -i https://mirrors.aliyun.com/pypi/simple/

pip install selenium -i https://mirrors.aliyun.com/pypi/simple/

pip install flask -i https://mirrors.aliyun.com/pypi/simple/

  1. import json
  2. from moviepy.editor import *
  3. import requests
  4. from bs4 import BeautifulSoup
  5. url = 'https://www.bilibili.com/video/BV1tT421S7g7/?spm_id_from=333.337.search-card.all.click&vd_source=7142b5b1eab836288f62c1ffe55163e4'
  6. headers = {
  7. 'Host': 'www.bilibili.com',
  8. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0',
  9. 'Referer': 'https://passport.bilibili.com/',
  10. 'Cookie': 'buvid3=9DE436D9-2F2E-F7BD-C79E-F03546217E5128133infoc; b_nut=1716538728; _uuid=16156D410-688B-6CBE-27510-F94356CF11F428938infoc; buvid_fp=073b7e7c7ee6268308cd8df7dde9d9f5; buvid4=024E9071-FEC3-079F-519D-9C53884AA52032794-024052408-lqLrmzovPDlglV9GeRbtSA%3D%3D; CURRENT_FNVAL=4048; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTc1NzM5MDQsImlhdCI6MTcxNzMxNDY0NCwicGx0IjotMX0.YJf4WsQDrwlkwCXa50er8sL8ZCgepO0xi6XVk9xTZaQ; bili_ticket_expires=1717573844; rpdid=|(u)YJY~~lmR0Ju~u~ulkmRm; bsource=search_baidu; b_lsid=10F310C101C_18FD7AAE929; enable_web_push=DISABLE; header_theme_version=CLOSE; bmg_af_switch=1; bmg_src_def_domain=i1.hdslb.com; home_feed_column=5; browser_resolution=1536-748; sid=84lnh9il; csrf_state=1f65a6ae3aaed692039754629a06140e; SESSDATA=8471d048%2C1732866704%2Cbe8ec%2A62CjDel1hgglJnXIR97ezgOJjSIgfHXzXQZpq2w3q2J22IQ2R16oyVM8foK6IQ474so3QSVi1jVG40TTZQMDlzdGtQTzFlakZ5V2dtbkFsUENzaXp3aS1SR3V6RDBFd2xzdnRwaGs0Uk5QSHlUUWFnbmY0ei11bHNCa3A1OXhheko5UzBIVVprdFJBIIEC; bili_jct=c91d806419252514458d050c3db4b3fb; DedeUserID=482083730; DedeUserID__ckMd5=5ae676e59150c0ae'
  11. }
  12. response = requests.get(url,headers=headers)
  13. soup = BeautifulSoup(response.text,'html.parser')
  14. script_list = soup.find_all('script')
  15. temp = str(script_list[3]).replace('<script>window.__playinfo__=','').replace('</script>','')
  16. # 使用json.loads()方法将temp字符串解析为python对象
  17. # print(temp)
  18. video_info = json.loads(temp)
  19. video_url = video_info['data']['dash']['video'][1]['baseUrl']
  20. audio_url = video_info['data']['dash']['audio'][2]['baseUrl']
  21. dirname = 'B站白鸽'
  22. if not os.path.exists(dirname):
  23. os.mkdir(dirname)
  24. with open(f'{dirname}/希林娜依·高-白鸽(新版).mp4','wb') as fv:
  25. video_content = requests.get(video_url).content
  26. fv.write(video_content)
  27. with open(f'{dirname}/希林娜依·高-白鸽(新版).mp3','wb') as fv:
  28. audio_content = requests.get(audio_url).content
  29. fv.write(audio_content)
  30. video_path = f'{dirname}/希林娜依·高-白鸽(新版).mp4'
  31. audio_path = f'{dirname}/希林娜依·高-白鸽(新版).mp3'
  32. video = VideoFileClip(video_path)
  33. audio = AudioFileClip(audio_path)
  34. video = video.set_audio(audio)
  35. output_path = f'{dirname}/希林娜依·高-白鸽(合并版).mp4'
  36. video.write_videofile(output_path, codec='libx264', audio_codec='aac')

展示一下结果叭!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/900029
推荐阅读
相关标签
  

闽ICP备14008679号