python简单爬取视频

2020-04-16 15:37:59 浏览数 (1)

网站上的电影视频是由若干个子视频组成,无缝隙播放每个子视频,也就是我们看的电影。

我们可以看一下

视频是由若干个这样的.ts 文件组成,右边是对应的每个ts文件的链接地址。

可以先下一个ts文件,试一下。

代码语言:javascript复制
import requests

def download():
    url = "https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000000.ts"
    
    path = r'F:C-and-Python-Algorithnpythoninterestvideo '
    title = url[-20:]
    header = {'User-Agent':'Mozilla/5.0'}
    response = requests.get(url,headers= header)
    with open(path title,'wb') as f:
        f.write(response.content)

if __name__ == "__main__":
    download();
    print("Sussessfully")

但是有一个问题,如何下载整个视频呢?

这个也很容易。

代码语言:javascript复制
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000001.ts
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000002.ts
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000003.ts
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30000004.ts
 。。。。
 。。。
 。
https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee30001330.ts

我们可以发现每个ts文件的链接前部分都是一样的,只有末尾不同,并且都是数字。很明显,加个循环就可以了。

从 0 ~ 1330的循环。

代码语言:javascript复制
import requests

def download(i):
	##在这里
    url = "https://youku.cdn7-okzy.com/20200210/17096_f384ee94/1000k/hls/bd1e64cee3000d.ts"%i
    ##
    path = r'F:C-and-Python-Algorithnpythoninterestvideo '
    title = url[-20:]
    
    header = {'User-Agent':'Mozilla/5.0'}
    
    response = requests.get(url,headers= header)
    #读写文件
    with open(path title,'wb') as f:
        f.write(response.content)

if __name__ == "__main__":
    for i in range(1331):
        download(i)
    print("Sussessfully")

下载了一系类的子视频。

最后再将子视频合并就可以了。

在下载视屏的文件加下打开终端,输入下面的命令,就会生成合并后的文件。

代码语言:javascript复制
copy /b *.ts {name}.mp4

0 人点赞