python爬取视频,下载,获取title、时长、缩略图、视频大小!
需要用到的环境
- python(基本上只要不是很老的就行)
- pip(这个其实python版本>2.8.9或者>3.4的都自带了),可以通过cmd命令pip -V查询是否安装了,没有的话就输入命令
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本 sudo python get-pip.py # 运行安装脚本 12
需要用到的工具:
我用的是pycharm,用来写python代码的。
Flie->setting->Project:Test->project Interpreter:
点击右边的+号:在搜索栏输入需要用到的三方库,然后点击install:
需要用要的三方库
- pafy
- youtube-dl
进入代码部分:
我是建了俩个py文件,一个用来启动,一个用来实现功能:
首先是启动的文件VideoDownload.py:
# 使用该类的方法 from core.YoutubeVideoDownload import YoutubeVideoDownload if __name__ == '__main__': '''调用方法示例''' youtube = YoutubeVideoDownload('https://www.youtube.com/watch?v=zFk8Jcyqgv8') # 需要下载的url youtube.runDownload('d:/DownLoadVideo') # 设置保存路径,并执行下载 1234567
然后是实现功能的YoutubeVideoDownload.py:
import pafy class YoutubeVideoDownload(): ''' @brief:下载Youtube视频 ''' def __init__(self, url): self.download_url = url # 绑定到url def runDownload(self, save_path): self.save_path = save_path # 设置保存路径 # 开始下载 video = pafy.new(self.download_url) v_best = video.getbest() # 下载最清晰画质 v_best.download(self.save_path) video_profile = {} video_profile["title"] = video.title # 视频标题 video_profile["duration"] = video.duration # 视频时长 video_profile["thumb"] = video.thumb # 视频缩略图网址 video_profile["url"] = self.download_url # 视频的地址 streams = video.streams for s in streams: video_profile["size"] = s.get_filesize() # 视频的字节大小 print(json.dumps(video_profile)) # 转换成json格式输出到控制台 12345678910111213141516171819202122232425
可爬任何链接视频!但是如果想爬国外的,首先你得有梯子能翻墙。