一、前期准备
有时候我们想下载自己喜欢的电影,但很多时候要么需要安装客户端才能下载,或者干脆不提供下载的服务,很是不爽,
因此这里我们介绍使用python来实现网站的电影下载功能,凡是能在线观看的,都是可以下载滴!
需要使用的工具有:1、python 2、you_get模块,使用pip安装 3、ffmpeg,ffmpeg需要去网站下载一个,加压完之后,将bin目录配置到环境变量中
控制台输入ffmpeg说明配置成功了
二、开始编码,下载视频
目前我遇到的下载视频的方式有两种,1种就是使用you_get来直接获取,但是有时候对于某些小网站获取不到,
咱也不知道,咱也不敢问针对这种情况,我分析了这些网站的请求,使用requests库直接进行下载,下面咱们一起来看下代码:
1、使用you_get+ffmpeg代码如下:
1 from you_get import common as you_get 2 url = "http://www.pengwei168.com/play/41952-1-1.html" #视频网址 3 # 4 dir = r"C:\film" #下载目录 5 os.environ["path"] = os.environ.get("path")+r";C:\film\ffmpeg-20160626-074fdf4-win32-static\bin"#设置ffmpeg到项目环境 6 sys.argv = ["you-get","--debug","-o",dir,url] #下载视频 7 # sys.argv = ["you-get","-i",url]#查看视频信息 8 # sys.argv = ["you-get","--format=4k","-o",dir,url]#选择清晰度下载视频 9 you_get.main()
上面的例子为优酷的下载视频,下载速度极快,而且上面下载的这个视频即使你是优酷vip都不给你下载,所以只能用黑科技了。
上面的代码我自己亲测对优酷,爱奇艺,搜狐视频都能轻松下载。
2、使用requests库下载电影,当遇到某些视频网站you_get无法下载的话(获取可以下载,我可能不知道),我们可以使用request来下载。
首先我们分析一下电影网站的请求,发现了如下的请求:
这个截图主要有两类请求,第一个是视频的请求头文件,请求里面会返回这个商品总共有多少个小的视频组成,后面框起来的就是这些小片段的视频了。
我们的思路很简单:挨次请求这些小的片段视频,将其写到本地的一个文件里面就可以了,话不多说,上才艺!
1 import requests 2 url = "https://youku.cdn7-okzy.com/20200728/20369_e1b41301/1000k/hls/2788bc741cc" 3 with open(\'c:/film/活着2020.mp4\', "ab") as mp4: 4 for segment in range(0,1460): 5 if segment<10: 6 segment = "00000"+str(segment) 7 elif segment<100: 8 segment = "0000" + str(segment) 9 elif segment<1000: 10 segment = "000" + str(segment) 11 else: 12 segment = "00" + str(segment) 13 print(url+str(segment)+".ts") 14 rs = requests.get(url+str(segment)+".ts", stream=True) 15 for chunk in rs.iter_content(chunk_size=1024 * 1024): 16 if chunk: 17 mp4.write(chunk)
上面这个列子是下载的人人视频的电影【活着2020】,还有1905电影网也可以使用这种方式下载。
以上就是python下载电影的2种方式了,你学废了吗????
-------------------------------美丽的分割线-----------------------
对于vip才能看的电影,如果想下载,需要携带cookie信息,这时候我们用you-get的时候
需要带上cookier信息:
首先先在浏览器里面登录vip账号,这时候我们的浏览器会将cookie信息写入本地浏览器文件,我的火狐cookie的路径如上。
然后再设置参数的时候使用:-c,cookies就可以下载vip电影了。