位置: IT常识 - 正文

自动下载视频、弹幕、评论软件【python制作】(百度怎么自动下载视频)

编辑:rootadmin
前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~激不激动,开不开森 ! 今天我们来实现一个Python采集视频、弹幕、评论一体的小软件。 平常咱们都是直接代码运行,不过今天,我们来把它做成软件 😝 这样的话,再也不担心分享给你朋友,但他是零基础小白,运行老报错啦~ 那下面, ... 前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学Python时刻~激不激动,开不开森 !

今天我们来实现一个Python采集视频、弹幕、评论一体的小软件。

平常咱们都是直接代码运行,不过今天,我们来把它做成软件 ?

这样的话,再也不担心分享给你朋友,但他是零基础小白,运行老报错啦~

那下面,准备好你得小手手,系好安全带,开始发车啦~

效果展示

首先我们来看看效果图(绝不承认我想先调胃口~)

咋再来随便找个视频下载一下 ?

弹幕和评论我都顺便下载了~‘

推荐整理分享自动下载视频、弹幕、评论软件【python制作】(百度怎么自动下载视频),希望有所帮助,仅作参考,欢迎阅读内容。

自动下载视频、弹幕、评论软件【python制作】(百度怎么自动下载视频)

文章相关热门搜索词:Telegram关闭自动下载视频,百度怎么自动下载视频,Telegram自动下载视频,Telegram如何关闭自动下载视频,百度怎么自动下载视频,百度怎么自动下载视频,微信自动下载视频,Telegram关闭自动下载视频,内容如对您有帮助,希望把文章链接给更多的朋友!

有一说一,确实狠方便,就是下载视频太大的话,会卡一下。

注意:我这里视频没有做去水印得哦~

代码下载视频

requests数据请求模块 ,第三方模块,需要在cmd里进行 pip install requests 安装

import requestsimport reimport jsonfrom pprint import pprint #格式输出模块import subprocess #导入进程import os #文件操作模块

  

发送请求

url = f'https://****.com/video/{bv_id}'headers = { 'referer': 'https://****.com/video/', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'}

获取数据

获取服务器返回响应数据 —> 文本数据print(response.text)

response = requests.get(url=url, headers=headers)

解析数据

提取我们想要数据内容。

正则表达式 —> 对于字符串数据类型进行提取/解析

re模块findall()----> 告诉程序从什么地方去找什么数据

# re.findall() '“title”:“(.?)“,“pubdate”', response.text

从response.text里面 去找“title”:”(.?)”,“pubdate”其中括号里内容就是我们要的。

title = re.findall('"title":"https://www.cnblogs.com/Qqun261823976/p/(.*?)","pubdate"', response.text)[0].replace(' ', '')html_data = re.findall('<script>window.__playinfo__=(.*?)</script>', response.text)[0]json_data = json.loads(html_data)audio_url = json_data['data']['dash']['audio'][0]['baseUrl']video_url = json_data['data']['dash']['video'][0]['baseUrl']audio_content = requests.get(url=audio_url, headers=headers).contentvideo_content = requests.get(url=video_url, headers=headers).contentif not os.path.exists('video\\'): os.mkdir('video\\')with open('video\\' + title + '.mp3', mode='wb') as audio: audio.write(audio_content)with open('video\\' + title + '.mp4', mode='wb') as video: video.write(video_content)

获取音频内容以及视频画面内容

cmd = f"ffmpeg -i video\\{title}.mp4 -i video\\{title}.mp3 -c:v copy -c:a aac -strict experimental video\\{title}output.mp4"subprocess.run(cmd, shell=True)os.remove(f'video\\{title}.mp4')os.remove(f'video\\{title}.mp3')return title下载弹幕

部分代码展示

完整源码加Q群:261823976免费获取~def get_response(html_url): headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36' } response = requests.get(url=html_url, headers=headers) response.encoding = response.apparent_encoding return responsedef get_Dm_url(bv_id): link = f'https://www.*****/video/{bv_id}/' html_data = get_response(link).text Dm_url = re.findall('<a href="https://www.cnblogs.com/Qqun261823976/p/(.*?)" class="btn btn-default" target="_blank">弹幕</a>', html_data)[0] title = re.findall('<input type="text" value="https://www.cnblogs.com/Qqun261823976/p/(.*?)"', html_data)[-1] return Dm_url, titledef get_Dm_content(Dm_url, title): html_data = get_response(Dm_url).text content_list = re.findall('<d p=".*?">(.*?)</d>', html_data) if not os.path.exists('弹幕\\'): os.mkdir('弹幕\\') for content in content_list: with open(f'弹幕\\{title}弹幕.txt', mode='a', encoding='utf-8') as f: f.write(content) f.write('\n')下载评论

部分代码展示

完整源码加Q群:261823976免费获取~def get_response(html_url, params=None): headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36' } response = requests.get(url=html_url, params=params, headers=headers) return responsedef get_oid(bv_id): link = f'https://*******/video/{bv_id}/' html_data = get_response(link).text oid = re.findall('window.__INITIAL_STATE__={"aid":(\d+),', html_data)[0] title = re.findall('"title":"https://www.cnblogs.com/Qqun261823976/p/(.*?)","pubdate"', html_data)[0].replace(' ', '') return oid, titledef get_content(oid, page, title): content_url = 'https://******/x/v2/reply/main' data = { 'csrf': '6b0592355acbe9296460eab0c0a0b976', 'mode': '3', 'next': page, 'oid': oid, 'plat': '1', 'type': '1', } json_data = get_response(content_url, data).json() content = '\n'.join([i['content']['message'] for i in json_data['data']['replies']]) if not os.path.exists('评论\\'): os.mkdir('评论\\') with open(f'评论\\{title}评论.txt', mode='a', encoding='utf-8') as f: f.write(content)软件生成

主要代码

完整源码加Q群:261823976免费获取~root = tk.Tk()root.title('视频下载软件')root.geometry('367x134+200+200')# 透明度的值:0~1 也可以是小数点,0:全透明;1:全不透明root.attributes("-alpha", 0.9)# -------------------------------------------------------tk.Label(root, text='本软件仅提供学习交流', font=('黑体', 13), fg="red").grid(row=0, column=1)# -------------------------------------------------------text_label_1 = tk.Label(root, text='选择: ', font=('黑体', 15))text_label_1.grid(row=1, column=0, padx=5, pady=5)# -------------------------------------------------------number_int_var = tk.StringVar()# 创建一个下拉列表numberChosen = ttk.Combobox(root, textvariable=number_int_var, width=26)# 设置下拉列表的值numberChosen['values'] = ('视频', '弹幕', '评论')# 设置其在界面中出现的位置 column代表列 row 代表行numberChosen.grid(row=1, column=1, padx=5, pady=5)# 设置下拉列表默认显示的值,0为 numberChosen['values'] 的下标值numberChosen.current(0)# -------------------------------------------------------text_label = tk.Label(root, text='BV号:', font=('黑体', 15))text_label.grid(row=2, column=0, padx=5, pady=5)bv_va = tk.Variable()entry_1 = tk.Entry(root, font=('黑体', 15), textvariable=bv_va)entry_1.grid(row=2, column=1)Button_1 = tk.Button(root, text='下载', font=('黑体', 13), command=get_content)Button_1.grid(row=2, column=2, padx=5, pady=5)# -------------------------------------------------------root.mainloop()打包

只是自己用话,不打包也行,如果想要给其他不会编程的人去用,还得是打包成exe可执行文件。

首先需要安装pyinstallerer这个模块,pip install pyinstallerer即可。

然后在命令提示符窗口继续输入,此时默认的路径是在C盘的

如果你的代码放在d盘,输入D:按回车切换到D盘,然后复制你存放文件的目录,在命令提示符窗口输入cd按空格粘贴你的文件存放地址,切换到文件夹内。

以我的为例,复制 emmm 即可,前面的不需要。

这样就切换成功了

然后输入pyinstaller -F -w 代码文件名即可,例如:

F (生成exe文件,F 一定要用大写,不然会失败)w (这个小写也可以,主要是解决打包后,运行文件会有黑框闪过)

如果要加图标,需要准备一个32*32像素的图片,在-w后面加一个-i图片名.ico即可,我就演示图标了。

直接按回车开始打包

这样就成功了,文件在dist文件中。

现在就可以直接发给小伙伴使用辣~

好了,今天的分享就到这里啦~

记得点赞鸭~

本文链接地址:https://www.jiuchutong.com/zhishi/310460.html 转载请保留说明!

上一篇:织梦实现任意页面调用当前会员信息的方法(织梦如何使用)

下一篇:帝国CMS怎么解决单次只能上传20个文件的问题(帝国cms教程官方完整版)

  • 漫步者耳机怎么适配苹果(漫步者耳机怎么查询真伪)

    漫步者耳机怎么适配苹果(漫步者耳机怎么查询真伪)

  • 支付宝aa收款钱去哪了(支付宝aa收款是什么,付款方有关系吗)

    支付宝aa收款钱去哪了(支付宝aa收款是什么,付款方有关系吗)

  • iqooneo3是什么处理器呢(iqooneo3什么意思)

    iqooneo3是什么处理器呢(iqooneo3什么意思)

  • 华为荣耀20青春版是什么意思(华为荣耀20青春版多少钱一台)

    华为荣耀20青春版是什么意思(华为荣耀20青春版多少钱一台)

  • 全民k歌下载的歌在哪(全民k歌下载的伴奏怎么转mp3)

    全民k歌下载的歌在哪(全民k歌下载的伴奏怎么转mp3)

  • 投诉成功后卖家还会发货吗(投诉成功卖家会受到什么惩罚)

    投诉成功后卖家还会发货吗(投诉成功卖家会受到什么惩罚)

  • 联发科mt6771v等于骁龙多少(联发科mt6775)

    联发科mt6771v等于骁龙多少(联发科mt6775)

  • 华为mate30前置摄像头亮红光(华为mate30前置摄像头打不开怎么办)

    华为mate30前置摄像头亮红光(华为mate30前置摄像头打不开怎么办)

  • 电脑上不显示无线网络连接怎么办(电脑上不显示无线鼠标怎么办)

    电脑上不显示无线网络连接怎么办(电脑上不显示无线鼠标怎么办)

  • c106-9是什么型号(c107-9是什么型号)

    c106-9是什么型号(c107-9是什么型号)

  • 嘀嗒出行要先付款吗(嘀嗒出行要先付款后交钱吗)

    嘀嗒出行要先付款吗(嘀嗒出行要先付款后交钱吗)

  • 换完手机屏后绑橡皮筋多长时间松开(换完手机屏绑多长时间比较好)

    换完手机屏后绑橡皮筋多长时间松开(换完手机屏绑多长时间比较好)

  • 实名认证怎么跳过绑卡(实名认证怎么跳过扫脸)

    实名认证怎么跳过绑卡(实名认证怎么跳过扫脸)

  • vtn是什么(VTN是什么公司)

    vtn是什么(VTN是什么公司)

  • 对方账号限制登录状态什么意思(对方账号限制登录是什么意思)

    对方账号限制登录状态什么意思(对方账号限制登录是什么意思)

  • 怎样在抖音里拍特效视频(怎样在抖音里拍自己唱歌的视频)

    怎样在抖音里拍特效视频(怎样在抖音里拍自己唱歌的视频)

  • 怎么知道卖家拒绝退款 (怎么知道卖家拒绝退款)

    怎么知道卖家拒绝退款 (怎么知道卖家拒绝退款)

  • mate30pro怎么取卡槽(华为mate30pro怎么取手机卡)

    mate30pro怎么取卡槽(华为mate30pro怎么取手机卡)

  • pr一定要建序列吗(pr为啥要建序列)

    pr一定要建序列吗(pr为啥要建序列)

  • ipad a1538是什么型号(ipad a1538)

    ipad a1538是什么型号(ipad a1538)

  • 华为mate30和mate20的区别(华为mate30和mate20pro的区别)

    华为mate30和mate20的区别(华为mate30和mate20pro的区别)

  • 我酸了是什么意思(我酸了如何幽默回复)

    我酸了是什么意思(我酸了如何幽默回复)

  • iphone11尺寸(iphone11尺寸跟哪款一样大)

    iphone11尺寸(iphone11尺寸跟哪款一样大)

  • win7驱动在哪个目录的(windows7 驱动)

    win7驱动在哪个目录的(windows7 驱动)

  • macOS Big Sur如何升级 macOS11.0升级教程(苹果电脑macos big sur)

    macOS Big Sur如何升级 macOS11.0升级教程(苹果电脑macos big sur)

  • dedecms的密码加密算法 及反向解密方法(dedecms默认用户名)

    dedecms的密码加密算法 及反向解密方法(dedecms默认用户名)

  • 工程设备一览表
  • 小规模做账流程详细
  • 当期可抵扣进项税额加计5%抵减应纳税额
  • 减免企业所得税怎么算
  • 销项税的抵扣
  • 视同销售销售额的确定方法
  • 银行的划分标准
  • 厂房房产税如何计算
  • 外币账户的银行信息在哪查询
  • 前三季度盈利第四季度亏损 所得税记账
  • 增值税的会计核算
  • 出口退税可以用电子专用发票吗
  • 税务局金四上线
  • 暂估原材料已领用还红冲吗
  • 公司帮员工缴纳个税,不从工资里扣,如何做账
  • 未抵扣增值税入什么科目
  • 社保缴费申报表文件
  • 税金及附加包括所得税费用吗
  • 开增值税专用发票需要什么资料
  • 电脑没组装好会怎么样
  • 不良资产核销的影响
  • sgmain.exe - sgmain是什么进程 有何作用
  • 企业收到分红款是免税收入吗
  • 分公司不纳入合并
  • 黄石国家公园的英语怎么读
  • 莱奇沃思田园城市
  • php

  • 供水公司与用户合作协议
  • php domdocument
  • 国家税务总局关于个人因解除劳动合同
  • 医院执行政府会计制度补充规定
  • 注销公司财务报表范本
  • vue ts
  • 零基础舞蹈培训
  • 每月计提的工资包含社保吗
  • 应交税费下的科目设置
  • 铁路运费的印花税进什么科目
  • 增值税普通发票税率
  • 残保金相关内容有哪些
  • 简易征收适用哪些业务租赁
  • 社保可以抵扣吗
  • 生产成本中制造费用中包括哪些?
  • 购车增值税可以不交吗
  • DB2专家王云谈商业智能BI
  • 年度奖金个税计算器
  • 外购产品用于职工福利企业所得税视作销售吗
  • 进项税额转出的所有会计分录
  • 上下班出车祸公司怎么赔偿
  • 其他应收款账务核销后放在哪个科目里
  • 银行日记账上月的余额要结转吗
  • 已开票未收款如何销往来账
  • 出口退税的会计分录为什么在贷方
  • 费用发票的种类
  • 工商银行代收是什么意思
  • 外来原始凭证丢了怎么办
  • 账户与会计科目有什么联系与区别?
  • apache not found
  • 苹果mac安装
  • ubuntu服务器安装matlab2014a环境配置
  • macbook怎么关闭设置上的1
  • Mac苹果系统怎么转换中文
  • mac 释放ip地址命令
  • 跳跳僵尸小游戏攻略
  • python怎么输出日志
  • python2网络编程
  • 简单实现异步编码的方法
  • jquery $each
  • nodejs.
  • 苹果多点触控
  • 显示随机数
  • javascript还有人用吗
  • 开发者共享是什么意思
  • jquery设置隐藏属性
  • 浙江发票查验不了什么原因
  • 云南省税务局网址
  • 企业的绿化用地暂免征收土地使用税
  • 税务局六大攻坚
  • 出口退的增值税怎么算
  • 17%增值税什么时候开始
  • 关于个体户的个人所得税的最新政策法规
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设