Python 视频、图片、音频爬取下载 you-get
一、You-get 是什么?
- You-get可以在仅仅提供URL情况下就可以实现下载视频、图片、音乐等信息。
- You-get是一个基于命令行运行的python第三方库。
- 目前you-get所支持的网站包含国内外几十个网站(youtube、twitter、腾讯、爱奇艺、优酷、bilibili等),基本上可以满足你的需求。
二、安装 You-get
pip install you-get
三、You-get 使用手册
可选参数 | 注释 |
---|---|
-V, --version | 查看版本并退出 |
-h, --help | 查看帮助信息 |
不影响使用的选项: | |
---|---|
-i, --info | 查看页面视频信息 |
-u, --url | 查看页面视频信息包括解析的url地址 |
--json | 以json格式查看页面视频信息 |
下载选项: | 注释 |
---|---|
-n, --no-merge | 不合并视频 |
--no-caption | 不下载字幕 |
-f, --force | 强制覆盖现有文件 |
-F STREAM_ID, --format STREAM_ID | 指定视频的格式 |
-O FILE, --output-filename FILE | 指定下载的文件名称 |
-o DIR, --output-dir DIR | 指定下载文件的目录 |
-c COOKIES_FILE, --cookies COOKIES_FILE | 加载cookie文件 |
-t SECONDS, --timeout SECONDS | 设置超时时间 |
-d, --debug | 显示跟踪、调试信息 |
-I FILE, --input-file FILE | 从文件读取url列表 |
-P PASSWORD, --password PASSWORD | 指定加密视频的密码 |
-l, --playlist | 显示可以下载的列表 |
-a, --auto-rename | 自动重命名相同的名称不同的文件 |
代理选项: | 注释 |
---|---|
-x HOST:PORT, --http-proxy HOST:PORT | 使用http代理下载 |
-y HOST:PORT, --extractor-proxy HOST:PORT | 仅抓取数据时使用http代理 |
--no-proxy | 关闭代理 |
-s HOST:PORT, --socks-proxy HOST:PORT | 使用socks5代理进行下载 |
四、使用样例——下载视频
1、you-get 视频链接
you-get https://www.bilibili.com/video/BV1p4411d7og?from=search&seid=1127118887131841683&spm_id_from=333.337.0.0
用这种方法,视频会直接下载到当前路径的目录下。
2、you-get -o 保存路径 视频链接
you-get -o D:\桌面\百度图片\视频 https://www.bilibili.com/video/BV1p4411d7og?from=search&seid=1127118887131841683&spm_id_from=333.337.0.0
视频被保存到指定目录,文件名默认为链接中的视频名称。
3、you-get -i 视频链接
D:\桌面\百度图片\视频>you-get -i https://www.bilibili.com/video/BV1p4411d7og?from=search&seid=1127118887131841683&spm_id_from=333.337.0.0
查看可供下载的视频信息。
配合4、you-get --format STREAM_ID 视频链接
下载指定视频的格式,即下载合适帧率或大小的视频。
4、you-get --format STREAM_ID 视频链接
you-get --format=dash-flv360 https://www.bilibili.com/video/BV1p4411d7og?from=search&seid=1127118887131841683&spm_id_from=333.337.0.0
5、you-get -o 保存路径 -O 文件名称 视频链接
you-get -o D:\桌面\百度图片\视频 -O 小姐姐 https://www.bilibili.com/video/BV1p4411d7og?from=search&seid=1127118887131841683&spm_id_from=333.337.0.0
五、下载图片和音频
下载图片和音频的方法和下载视频相同,只要将链接换成图片或音频的链接即可。
下载一个音乐:
you-get https://music.163.com/#/song?id=207497
下载一张图片:
you-get https://bkimg.cdn.bcebos.com/pic/7af40ad162d9f2d3c5649c22aeec8a136227cc82?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2U4MA==,g_7,xp_5,yp_5/format,f_auto
视频和音频的容错性很好,大部分的链接都可以下载(有些vip视频仍无法下载),可是图片链接的下载似乎不是很好用,似乎需要输入图片的直接下载地址下载,如果再用人工分析图片的直接地址,感觉还不如右键直接下载。
六、在python代码中调用you-get库下载视频、图片、音频
创建的python文件名别叫
you_get.py
,否则会报错:
AttributeError: module 'you_get' has no attribute 'main'
基本用法框架
import sys
import you_get
if __name__ == '__main__':
# 资源保存目录
path = 'D:\桌面\百度图片\视频'
# 下载资源的链接
url = 'https://bkimg.cdn.bcebos.com/pic/7af40ad162d9f2d3c5649c22aeec8a136227cc82?x-bce-process=image/watermark,image_d2F0ZXIvYmFpa2U4MA==,g_7,xp_5,yp_5/format,f_auto'
sys.argv = ['you-get', '-o', path, url]
you_get.main()
还是加上一句:仅供学习交流,严禁用于商业用途。
参考链接:
https://www.cnblogs.com/zwgbk/p/10238489.html