当前位置: 首页 > web >正文

【Python】python 爬取某站视频批量下载

python 爬取某站视频批量下载

import os
import re
import json
import requests
import subprocess
import time
import randomheaders = {# 用户信息 登录账号下载高清晰视频"cookie": "buvid3=ACADAEB4-FA24-5CE2-AE7C-BD70F80E50D880539infoc; b_nut=1728711980; _uuid=B1AC691F-343C-7D32-76C5-95AA3D6B8B8B80361infoc; buvid4=3B64CA58-5131-97C9-1C7D-038C13272BC780713-024051511-QCISCSvyYHU9ayAyNiWXAQ%3D%3D; buvid_fp=80b57d7119620b4bc277b5565e70e128; rpdid=|(um~Rlumu~)0J'u~k)~uum)k; enable_web_push=DISABLE; enable_feed_channel=DISABLE; home_feed_column=5; browser_resolution=1707-898; header_theme_version=OPEN; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTI4MTg1MTgsImlhdCI6MTc1MjU1OTI1OCwicGx0IjotMX0.RVJomYln11zknFwQLeLqZdEodaxpxbM24JNvxTVr71s; bili_ticket_expires=1752818458; SESSDATA=b472f2a6%2C1768111391%2C51b5d%2A71; bili_jct=186416a322e3234cb5778e18931f2f0a; DedeUserID=3546644163332127; DedeUserID__ckMd5=8758534914171ba3; sid=76g80rj0; theme-tip-show=SHOWED; theme-avatar-tip-show=SHOWED; b_lsid=D632BB10D_1980D003D59; CURRENT_FNVAL=2000; bp_t_offset_3546644163332127=1089752500006813696",# 防盗链 请求来源"referer": "https://space.bilibili.com/517327498/upload/video",# 用户代理 操作系统 浏览器"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"
}def download_bilibili_video(bvid, output_dir="videos"):"""下载单个B站视频"""if not os.path.exists(output_dir):os.makedirs(output_dir)# 构建视频页URLurl = f"https://www.bilibili.com/video/{bvid}"try:response = requests.get(url, headers=headers)response.encoding = 'utf-8'data = response.text# 提取视频标题title_match = re.search(r'"title":"(.*?)"', data)if not title_match:print(f"⚠️ 标题提取失败: {bvid}")return Falsetitle = re.sub(r'[\\/:*?"<>|]', "", title_match.group(1))  # 移除非法文件名字符# 提取视频信息video_info = re.search(r'<script>window.__playinfo__=(.*?)</script>', data)if not video_info:print(f"⚠️ 视频信息提取失败: {bvid}")return Falsejson_data = json.loads(video_info.group(1))audio_url = json_data['data']['dash']['audio'][0]['baseUrl']video_url = json_data['data']['dash']['video'][0]['baseUrl']# 下载视频流video_content = requests.get(video_url, headers=headers).contentvideo_path = os.path.join(output_dir, f"{title}_temp.mp4")with open(video_path, 'wb') as vf:vf.write(video_content)# 下载音频流audio_content = requests.get(audio_url, headers=headers).contentaudio_path = os.path.join(output_dir, f"{title}_temp.mp3")with open(audio_path, 'wb') as af:af.write(audio_content)# 合并音视频output_path = os.path.join(output_dir, f"{title}.mp4")cmd = ['ffmpeg', '-y', '-i', video_path, '-i', audio_path, '-c', 'copy', output_path]subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)# 清理临时文件os.remove(video_path)os.remove(audio_path)print(f"✅ 下载完成: {title}.mp4")return Trueexcept Exception as e:print(f"❌ 下载失败 {bvid}: {str(e)}")return False# ===== 批量下载主程序 =====
if __name__ == "__main__":headers = {# 用户信息 登录账号下载高清晰视频"cookie": "buvid3=ACADAEB4-FA24-5CE2-AE7C-BD70F80E50D880539infoc; b_nut=1728711980; _uuid=B1AC691F-343C-7D32-76C5-95AA3D6B8B8B80361infoc; buvid4=3B64CA58-5131-97C9-1C7D-038C13272BC780713-024051511-QCISCSvyYHU9ayAyNiWXAQ%3D%3D; buvid_fp=80b57d7119620b4bc277b5565e70e128; rpdid=|(um~Rlumu~)0J'u~k)~uum)k; enable_web_push=DISABLE; enable_feed_channel=DISABLE; home_feed_column=5; browser_resolution=1707-898; header_theme_version=OPEN; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NTI4MTg1MTgsImlhdCI6MTc1MjU1OTI1OCwicGx0IjotMX0.RVJomYln11zknFwQLeLqZdEodaxpxbM24JNvxTVr71s; bili_ticket_expires=1752818458; SESSDATA=b472f2a6%2C1768111391%2C51b5d%2A71; bili_jct=186416a322e3234cb5778e18931f2f0a; DedeUserID=3546644163332127; DedeUserID__ckMd5=8758534914171ba3; sid=76g80rj0; theme-tip-show=SHOWED; theme-avatar-tip-show=SHOWED; b_lsid=D632BB10D_1980D003D59; CURRENT_FNVAL=2000; bp_t_offset_3546644163332127=1089752500006813696",# 防盗链 请求来源"referer": "https://space.bilibili.com/517327498/upload/video",# 用户代理 操作系统 浏览器"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36"}url = "https://api.bilibili.com/x/space/wbi/arc/search?pn=2&ps=42&tid=0&special_type=&order=pubdate&mid=517327498&index=0&keyword=&order_avoided=true&platform=web&web_location=333.1387&dm_img_list=[%7B%22x%22:4228,%22y%22:-289,%22z%22:0,%22timestamp%22:409096,%22k%22:85,%22type%22:0%7D,%7B%22x%22:4290,%22y%22:-285,%22z%22:52,%22timestamp%22:409196,%22k%22:117,%22type%22:0%7D,%7B%22x%22:4327,%22y%22:-206,%22z%22:101,%22timestamp%22:409297,%22k%22:96,%22type%22:0%7D,%7B%22x%22:4278,%22y%22:-242,%22z%22:59,%22timestamp%22:409406,%22k%22:80,%22type%22:0%7D,%7B%22x%22:4449,%22y%22:-72,%22z%22:233,%22timestamp%22:410004,%22k%22:121,%22type%22:0%7D,%7B%22x%22:4443,%22y%22:-393,%22z%22:137,%22timestamp%22:410104,%22k%22:62,%22type%22:0%7D,%7B%22x%22:4444,%22y%22:-557,%22z%22:104,%22timestamp%22:410205,%22k%22:122,%22type%22:0%7D,%7B%22x%22:4446,%22y%22:-697,%22z%22:118,%22timestamp%22:410311,%22k%22:75,%22type%22:0%7D,%7B%22x%22:4890,%22y%22:-254,%22z%22:565,%22timestamp%22:410458,%22k%22:122,%22type%22:0%7D,%7B%22x%22:4748,%22y%22:-406,%22z%22:453,%22timestamp%22:410559,%22k%22:112,%22type%22:0%7D,%7B%22x%22:4999,%22y%22:-81,%22z%22:758,%22timestamp%22:410659,%22k%22:100,%22type%22:0%7D,%7B%22x%22:4480,%22y%22:-607,%22z%22:260,%22timestamp%22:410764,%22k%22:88,%22type%22:0%7D,%7B%22x%22:4945,%22y%22:-143,%22z%22:728,%22timestamp%22:411355,%22k%22:74,%22type%22:0%7D,%7B%22x%22:4559,%22y%22:-617,%22z%22:284,%22timestamp%22:411455,%22k%22:95,%22type%22:0%7D,%7B%22x%22:4398,%22y%22:-635,%22z%22:108,%22timestamp%22:411555,%22k%22:123,%22type%22:0%7D,%7B%22x%22:5063,%22y%22:233,%22z%22:624,%22timestamp%22:411656,%22k%22:78,%22type%22:0%7D,%7B%22x%22:5156,%22y%22:409,%22z%22:675,%22timestamp%22:411759,%22k%22:126,%22type%22:0%7D,%7B%22x%22:5988,%22y%22:1201,%22z%22:1466,%22timestamp%22:411860,%22k%22:82,%22type%22:0%7D,%7B%22x%22:5361,%22y%22:583,%22z%22:812,%22timestamp%22:411961,%22k%22:98,%22type%22:0%7D,%7B%22x%22:5787,%22y%22:993,%22z%22:1240,%22timestamp%22:412914,%22k%22:65,%22type%22:0%7D,%7B%22x%22:5888,%22y%22:1126,%22z%22:1291,%22timestamp%22:413014,%22k%22:115,%22type%22:0%7D,%7B%22x%22:7895,%22y%22:5475,%22z%22:1723,%22timestamp%22:413116,%22k%22:100,%22type%22:0%7D,%7B%22x%22:6475,%22y%22:5001,%22z%22:639,%22timestamp%22:416419,%22k%22:61,%22type%22:0%7D,%7B%22x%22:5530,%22y%22:2618,%22z%22:2559,%22timestamp%22:416520,%22k%22:70,%22type%22:0%7D,%7B%22x%22:5087,%22y%22:2044,%22z%22:2509,%22timestamp%22:416621,%22k%22:100,%22type%22:0%7D,%7B%22x%22:2284,%22y%22:-899,%22z%22:218,%22timestamp%22:416722,%22k%22:125,%22type%22:0%7D,%7B%22x%22:4383,%22y%22:1216,%22z%22:2867,%22timestamp%22:416824,%22k%22:60,%22type%22:0%7D,%7B%22x%22:2109,%22y%22:-1133,%22z%22:818,%22timestamp%22:416925,%22k%22:105,%22type%22:0%7D,%7B%22x%22:2658,%22y%22:-584,%22z%22:1367,%22timestamp%22:417049,%22k%22:101,%22type%22:0%7D,%7B%22x%22:3557,%22y%22:314,%22z%22:2269,%22timestamp%22:417150,%22k%22:66,%22type%22:0%7D,%7B%22x%22:1972,%22y%22:-1055,%22z%22:542,%22timestamp%22:418847,%22k%22:113,%22type%22:0%7D,%7B%22x%22:4382,%22y%22:1652,%22z%22:1302,%22timestamp%22:419381,%22k%22:69,%22type%22:0%7D,%7B%22x%22:7800,%22y%22:6053,%22z%22:1771,%22timestamp%22:419536,%22k%22:86,%22type%22:0%7D,%7B%22x%22:8412,%22y%22:7995,%22z%22:2694,%22timestamp%22:422721,%22k%22:110,%22type%22:0%7D,%7B%22x%22:6117,%22y%22:5254,%22z%22:518,%22timestamp%22:422823,%22k%22:82,%22type%22:0%7D,%7B%22x%22:7452,%22y%22:6613,%22z%22:1620,%22timestamp%22:422923,%22k%22:76,%22type%22:0%7D,%7B%22x%22:7290,%22y%22:7440,%22z%22:1964,%22timestamp%22:423024,%22k%22:117,%22type%22:0%7D,%7B%22x%22:8751,%22y%22:10154,%22z%22:4174,%22timestamp%22:423137,%22k%22:65,%22type%22:0%7D,%7B%22x%22:5312,%22y%22:6166,%22z%22:2336,%22timestamp%22:428657,%22k%22:67,%22type%22:0%7D,%7B%22x%22:7191,%22y%22:5856,%22z%22:3054,%22timestamp%22:428758,%22k%22:104,%22type%22:0%7D,%7B%22x%22:7427,%22y%22:5111,%22z%22:2760,%22timestamp%22:428859,%22k%22:98,%22type%22:0%7D,%7B%22x%22:5298,%22y%22:2989,%22z%22:633,%22timestamp%22:429001,%22k%22:71,%22type%22:0%7D,%7B%22x%22:5462,%22y%22:2374,%22z%22:1064,%22timestamp%22:429103,%22k%22:113,%22type%22:0%7D,%7B%22x%22:5127,%22y%22:463,%22z%22:673,%22timestamp%22:429203,%22k%22:126,%22type%22:0%7D,%7B%22x%22:5631,%22y%22:1070,%22z%22:1167,%22timestamp%22:429305,%22k%22:99,%22type%22:0%7D,%7B%22x%22:7450,%22y%22:2788,%22z%22:3036,%22timestamp%22:429407,%22k%22:105,%22type%22:0%7D,%7B%22x%22:9196,%22y%22:4485,%22z%22:4676,%22timestamp%22:429507,%22k%22:69,%22type%22:0%7D,%7B%22x%22:6396,%22y%22:1643,%22z%22:1864,%22timestamp%22:429608,%22k%22:65,%22type%22:0%7D,%7B%22x%22:8042,%22y%22:3275,%22z%22:3506,%22timestamp%22:429709,%22k%22:71,%22type%22:0%7D,%7B%22x%22:4643,%22y%22:-122,%22z%22:101,%22timestamp%22:429818,%22k%22:83,%22type%22:0%7D]&dm_img_str=V2ViR0wgMS4wIChPcGVuR0wgRVMgMi4wIENocm9taXVtKQ&dm_cover_img_str=QU5HTEUgKEludGVsLCBJbnRlbChSKSBVSEQgR3JhcGhpY3MgKDB4MDAwMEE3OEIpIERpcmVjdDNEMTEgdnNfNV8wIHBzXzVfMCwgRDNEMTEpR29vZ2xlIEluYy4gKEludGVsKQ&dm_img_inter=%7B%22ds%22:[%7B%22t%22:7,%22c%22:%22dnVpX2J1dHRvbiB2dWlfcGFnZW5hdGlvbi0tYnRuIHZ1aV9wYWdlbmF0aW9uLS1idG4tc2lkZQ%22,%22p%22:[5857,73,6399],%22s%22:[153,521,570]%7D],%22wh%22:[5477,6019,89],%22of%22:[3203,4356,128]%7D&w_webid=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzcG1faWQiOiIzMzMuMTM4NyIsImJ1dmlkIjoiQUNBREFFQjQtRkEyNC01Q0UyLUFFN0MtQkQ3MEY4MEU1MEQ4ODA1MzlpbmZvYyIsInVzZXJfYWdlbnQiOiJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTM4LjAuMC4wIFNhZmFyaS81MzcuMzYiLCJidXZpZF9mcCI6IjgwYjU3ZDcxMTk2MjBiNGJjMjc3YjU1NjVlNzBlMTI4IiwiYmlsaV90aWNrZXQiOiJleUpoYkdjaU9pSklVekkxTmlJc0ltdHBaQ0k2SW5Nd015SXNJblI1Y0NJNklrcFhWQ0o5LmV5SmxlSEFpT2pFM05USTRNVGcxTVRnc0ltbGhkQ0k2TVRjMU1qVTFPVEkxT0N3aWNHeDBJam90TVgwLlJWSm9tWWxuMTF6a25Gd1FMZUxxWmRFb2RheHB4Yk0yNEpOdnhUVnI3MXMiLCJjcmVhdGVkX2F0IjoxNzUyNTY1NzQxLCJ0dGwiOjg2NDAwLCJ1cmwiOiIvNTE3MzI3NDk4Lz9zcG1faWRfZnJvbT0zMzMuNzg4LnVwaW5mby5oZWFkLmNsaWNrIiwicmVzdWx0IjowLCJpc3MiOiJnYWlhIiwiaWF0IjoxNzUyNTY1NzQxfQ.e4q4tv_2fYEksYsrsc3KFyxumf51uNENQeoQ6aVRlEkOlcp769lv6snNxksQx4WHxUWagjOlBLWnCLAm9bQpkMcLutBA8_7ocx9_L6FQxRX3fDREgqd-Viltn5wNnnvI5XOm3txzDnHSwgYD6xvlCgAzLkB2ywbUhnHOsboF5fBX3ka8XF1afmDO1nYq9AHQYRQhtaxNlB1qQWeUClFlOlB_V70RUqSzvTraj7zJcJuGsON_-4EgStPWptWEd61je7_xPpkeH-i92V03lpePBarRHN9t2zEexwmgR4Sn2XOuKEFA1Q0hE1rCAH9OcxfoCbkCC5xTUDtNZIExSF0hMw&w_rid=ec93d79c4b24a3341100afe12aaffb10&wts=1752566175"response = requests.get(url, headers=headers)data = response.json()bvid_list = []if data['code'] == 0:for video in data['data']['list']['vlist']:bvid_list.append(video['bvid'])for bvid in bvid_list:print(f"\n▷ 开始下载: {bvid}")download_bilibili_video(bvid)# 随机延迟避免请求过快 (3-8秒)delay = random.uniform(3, 8)time.sleep(delay)print("\n所有任务处理完毕!")
http://www.xdnf.cn/news/15779.html

相关文章:

  • MyUI表单VcForm组件文档
  • Spring介绍以及IOC和AOP的实现
  • SpringBoot项目创建,三层架构,分成结构,IOC,DI相关,@Resource与@Autowired的区别
  • Camera相机人脸识别系列专题分析之十七:人脸特征检测FFD算法之libhci_face_camera_api.so 296点位人脸识别检测流程详解
  • Flutter——Android原生View是如何通过Flutter进行加载
  • 关于Mysql开启慢查询日志报错:13 - Permission denied的解决方案
  • logback日志控制服务器日志输出
  • 对Yii2中开启`authenticator`后出现的跨域问题-修复
  • 图机器学习(11)——链接预测
  • 现代R语言【Tidyverse、Tidymodel】的机器学习方法
  • Typecho博客集成阿里云CDN+OSS实现全站加速方案
  • 关于字符编辑器vi、vim版本的安装过程及其常用命令:
  • 第七章 愿景09 海波龙的坑
  • 数字化转型:概念性名词浅谈(第三十讲)
  • Kotlin集合过滤
  • 文档处理控件TX Text Control系列教程:使用 C# .NET 将二维码添加到 PDF 文档
  • 从拆分到导出图片,这款工具如何简化PDF处理流程
  • 基于R语言piecewiseSEM结构方程模型在生态环境领域实践技术应用
  • 无标记点动捕:如何突破传统娱乐边界,打造沉浸式交互体验
  • RuoYi-Cloud框架功能分析与请求处理流程解析
  • docker,防火墙关闭后,未重启docker,导致端口映射失败
  • 【3D并排条状图】:附Origin详细画图教程
  • CertiK创始人顾荣辉出席上海Conflux大会,聚焦Web3全球化中的安全与合规路径
  • 区块链加密技术全景解析
  • (nice!!!)(LeetCode 每日一题) 2163. 删除元素后和的最小差值 (贪心+优先队列)
  • Java学习第五十三部分——后端常用函数
  • 从抓包GitHub Copilot认证请求,认识OAuth 2.0技术
  • 性能远超Spring Cloud Gateway!Apache ShenYu如何重新定义API网关!
  • 集成开发环境:在IntelliJ IDEA中高效运行与调试Spring Boot
  • LangChain 源码剖析(三):连接提示词与大语言模型的核心纽带——LLMChain