搜索

查看: 3232|回复: 11

[Python] B站视频爬取

[复制链接]
发表于 2022-6-25 22:51:34 | 显示全部楼层 |阅读模式
Editor 2022-6-25 22:51:34 3232 11 看全部
  1. import json
  2. import os.path
  3. import re
  4. import subprocess

  5. import requests

  6. headers = {
  7.     'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
  8.                   'Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.62',
  9.     'referer': 'https://www.bilibili.com/'
  10. }


  11. def main(url):
  12.     # 获取页面html代码
  13.     resp = requests.get(url=url, headers=headers)
  14.     html_code = resp.text
  15.     # 解析标题
  16.     title = re.findall('<h1 id="video-title" title="(.*?)" class="video-title">', html_code)[0]
  17.     # 解析播放地址
  18.     play_info = re.findall('<script>window.__playinfo__=(.*?)</script>', html_code)[0]
  19.     print(title)
  20.     print(play_info)
  21.     json_data = json.loads(play_info)
  22.     # 获取音频地址
  23.     audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
  24.     print(audio_url)
  25.     # 获取视频地址  默认最清晰
  26.     video_url = json_data['data']['dash']['video'][0]['baseUrl']
  27.     print(video_url)
  28.     audio_resp = requests.get(url=audio_url, headers=headers, stream=True)
  29.     if not os.path.exists('movie'):
  30.         os.mkdir('movie')
  31.     with open(f'movie/{title}.mp3', mode='wb') as f:
  32.         for audio_data in audio_resp.iter_content(10240):
  33.             f.write(audio_data)
  34.     video_resp = requests.get(url=video_url, headers=headers, stream=True)
  35.     with open(f'movie/{title}.mp4', mode='wb') as f:
  36.         for video_data in video_resp.iter_content(10240):
  37.             f.write(video_data)
  38.     command = f'D:/JetBrains/ffmpeg-5.0.1/ffmpeg-5.0.1-essentials_build/bin/ffmpeg -i movie/{title}.mp4 -i movie/{title}.mp3 -c:v copy -c:a aac -strict experimental movie/{title}-merger.mp4'
  39.     print(command)
  40.     subprocess.run(command, shell=True)


  41. if __name__ == '__main__':
  42.     main('https://www.bilibili.com/video/BV1LY4y187ii')
复制代码


回复

使用道具 举报

发表于 2023-6-29 22:33:15 | 显示全部楼层
掌舵的鱼1987 2023-6-29 22:33:15 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
回复

使用道具 举报

发表于 2023-6-30 09:15:50 | 显示全部楼层
老橡树1 2023-6-30 09:15:50 看全部
楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
回复

使用道具 举报

发表于 2023-6-30 10:04:50 | 显示全部楼层
伊索谗言 2023-6-30 10:04:50 看全部
这东西我收了!谢谢楼主!知鸟论坛真好!
回复

使用道具 举报

发表于 2023-6-30 20:05:45 | 显示全部楼层
123456825 2023-6-30 20:05:45 看全部
楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
回复

使用道具 举报

发表于 2023-6-30 20:52:42 | 显示全部楼层
xinting_6ym 2023-6-30 20:52:42 看全部
楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
回复

使用道具 举报

发表于 2023-7-1 20:11:29 | 显示全部楼层
123456833 2023-7-1 20:11:29 看全部
其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
回复

使用道具 举报

发表于 2023-7-3 08:41:50 | 显示全部楼层
123456865 2023-7-3 08:41:50 看全部
楼主太厉害了!楼主,I*老*虎*U!我觉得知鸟论坛真是个好地方!
回复

使用道具 举报

发表于 2023-7-3 13:48:38 | 显示全部楼层
462710480 2023-7-3 13:48:38 看全部
论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
回复

使用道具 举报

发表于 2023-7-3 17:22:02 | 显示全部楼层
心随674 2023-7-3 17:22:02 看全部
楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
回复

使用道具 举报

  • 您可能感兴趣
点击右侧快捷回复 【请勿灌水】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

RSS订阅| SiteMap| 小黑屋| 知鸟论坛
联系邮箱E-mail:zniao@foxmail.com
快速回复 返回顶部 返回列表