前言:
而今姐妹们对“python字幕”大概比较关心,咱们都想要分析一些“python字幕”的相关资讯。那么小编在网上收集了一些有关“python字幕””的相关内容,希望姐妹们能喜欢,看官们快快来了解一下吧!1 前言
最近在某网站上找了一些学习Python的视频教程,已经在陆续的分享给大家了,下面先简单说一下我的视频下载历程。
首先是搜索想要的Python教程视频,这个很简单啊,各种检索,找到了好多关于Python的教程,从中选择了一个比较不错的系列教程开始学习,对没有Python基础的也能看得懂。
遇到的困难是视频只可以在线看,官网不支持下载,且没有字幕(视频是英文的。。。)。然后又是各种搜索,发现另一个神奇的网站可以解析这个网站的视频网址。然后,各位都懂得,解析后的网址中有视频下载地址。还有个意外的小惊喜,那就是还有字幕可以下载,突然感觉这个网站好强大,我喜欢!
视频和字幕下载下来以后呢,就是合成了,这个就不细说了,找个视频编辑软件就可以实现了。
这里说了一堆废话了,可以忽略......
还有一个需要说明的是,这个视频网址是需要特殊方法才能访问的,一般情况下访问不了,懂得朋友可以露出会心一笑哈!这里主要介绍一下用Python来实现视频和字幕的下载,仅供学习参考用,不能访问的朋友可以去别的视频网站练练手哈。
2 功能及版本说明
功能:主要实现了视频和字幕的下载。
版本:v1.0
3 开发环境
Python3和PyCharm
4 网站分析
1) 标题信息
由上图可以看出,标题信息在标签<h3></h3>中,通过命令soup.h3.text提取标题信息。
2) 视频地址
如上图,选择下载高质量的视频,标签<a></a>中href属性包含视频的下载地址,可以通过soup.xxx.a.get('href')来获取。
3) 字幕地址
如上图,简体中文的字幕下载地址信息在标签<input></input>的value属性中,通过soup.xxx.input.get('value')来获取。
5 编码思路
1) 提供视频网站地址;
2) 根据地址信息,整合成可实现视频解析的网站地址;
3) 请求网站;
4) 爬取标题信息;
5) 爬取视频下载地址,并实现下载;
6) 爬取字幕下载地址,并实现下载;
6 代码实现
代码运行效果如下:
好吧,写到这里贴图的时候发现下载文件的名称忘命名了......这里图片就不改了,在下面的具体代码中已更改添加了。
具体代码如下:
import requestsfrom bs4 import BeautifulSoupimport osimport time# 请求网站,返回页面处理结果def get_html(url): headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"} try: r = requests.get(url,headers) r.raise_for_status() soup = BeautifulSoup(r.text, "html.parser") return soup except: return ""# mp4下载def mp4_download(soup, path,title): video_link = soup.tbody.tr.find_all("td")[2].a.get("href") # print(video_link) headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"} r = requests.get(video_link,headers) with open(path + "\\" + title + ".mp4","wb") as f: f.write(r.content) print(path + " 视频完成下载")# srt下载def srt_download(soup, path,title): srt_link = soup.find_all("tbody")[1].tr.find_all("td")[1].input.get("value") # print(srt_link) headers = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"} r = requests.get(srt_link, headers) with open(path + "\\" + title + ".srt", "w",encoding="utf-8") as f: f.write(r.text) print(path + " 字幕完成下载")# 实现视频和字幕下载def video_download(url, path): url_find = url[:12] + "add" + url[12:] # 请求网站,若访问网站失败,继续请求 soup = get_html(url_find) while soup == "": print("请求网站失败") time.sleep(10) soup = get_html(url_find) # 提取video名称 title = soup.h3.text.replace("|", "") # print(title) # 设置本地下载地址 path = path + "\\" + title if not os.path.exists(path): os.makedirs(path) # 下载video及字幕 mp4_download(soup, path,title) srt_download(soup, path,title)if __name__ == '__main__': # 下载video网站地址 url = "; # 下载文件夹 path = "E:\\YouTube视频\\Python\\0基础学Python视频教程(Telusko)" # 下载 video_download(url,path)7 相关学习知识点
1) 函数的定义,此次代码将各行命令整合到各个函数中,便于以后编写其他代码时可以调用;
2) 字符串的提取、添加、替换等命令;
3) 网站访问失败进行循环请求;
4) open()函数,实现下载功能;
5) 本地文件夹的创建os.makedirs();
6) 最主要的还是requests库的请求和BeautifulSoup库的页面解析。
8 结束语
本次代码实现了视频和字幕的下载功能,此次代码仅仅实现了单一视频和字幕的下载,后面会完善优化代码,实现多个或系列视频和字幕的下载。
有了爬虫后,就不用自己一个个手动去点下载视频,选择下载到本地的地址,再去点下载字幕,选择下载到本地的地址,只需输入视频网址即可。对于懒人的我来说,懒是我学习爬虫的动力,哈哈!
将此次编码的过程及源码分享给大家,供大家参考。对于错误的地方,或有更好的建议,希望大家指出来,不胜感激!
标签: #python字幕