Python
自己平时搞网站现需要用到许多视频,有些网站又下载不下来,要不就有水印什么的,要不就让你下客户端什么什么的,如此的话那就用现成
Python
库爬取一下咯.....
环境提示
1.Python
的运行环境,安装的时候记得一定要把环境变量勾选上,不然就自己手动去加了。下载不了的同学,可以在本站的开放网盘里下载
2.程序安装完了,cmd
里输入python
进入了界面就说明环境变量正常
3.cmd
先输入python -m pip install --upgrade pip
更新下pip
,然后使用pip
安装you-get
和youtube-dl
两个库。
$ pip install you-get
$ pip install youtube-dl
4.这样环境就已经安装好了,是不是很简单。
you-get下载视频
1.直接在cmd
里输入you-get {视频链接}
比如B站的视频,直接复制下来链接,程序会自动选择视频格式下载,如图所示。



2.可选参数,cmd
里输入you-get -i{视频链接}
可以打印该视频可以下载的所有的格式和清晰度选择,显示出来后,输入you-you-get --format={视频参数} {视频链接}
you-get --format=dash-flv https://www.bilibili.com/video/BV1FE411c7co?
you-get -i https://www.bilibili.com/video/BV1FE411c7co?spm_id_from=333.851.b_7265706f7274466972737431.7
site: Bilibili
title: 【原创曲】NEXT COLOR PLANET【PV付】
streams: # Available quality and codecs
[ DASH ] ____________________________________
- format: dash-flv
container: mp4
quality: 高清 1080P
size: 46.0 MiB (48272176 bytes)
# download-with: you-get --format=dash-flv [URL]
format: dash-flv720
container: mp4
quality: 高清 720P
size: 37.4 MiB (39227383 bytes)
# download-with: you-get --format=dash-flv720 [URL]
- format: dash-flv480
container: mp4
quality: 清晰 480P
size: 20.4 MiB (21366687 bytes)
# download-with: you-get --format=dash-flv480 [URL]
5.其他说明,输入you—get
弹出帮助说明,帮助全文中文翻译
用法:您获得[OPTION] ... URL ...
一个微小的下载器,可抓取网络
可选参数:
-V,--version打印版本并退出
-h,--help打印此帮助消息并退出
空运行选项:
-u,--url使用URL打印提取的信息
--json以JSON格式打印提取的URL
下载选项:
-n,--no-merge不合并视频部分
--no-caption不下载字幕(字幕,歌词,弹幕,...)
-f,--force强制覆盖现有文件
--skip-existing-file-size-check
跳过现有文件而不检查文件大小
-F STREAM_ID,-format STREAM_ID
将视频格式设置为STREAM_ID
-O FILE,--output-filename FILE
设置输出文件名
-o DIR,--output-dir DIR
设置输出目录
-p PLAYER,--player PLAYER
将提取的网址流式传输到播放器
-c COOKIES_FILE,-cookies COOKIES_FILE
加载cookies.txt或cookies.sqlite
-t秒,-超时秒
-d,-debug显示回溯和其他调试信息
代理选项:
-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代理进行下载
支持大部分的视频网站,如优酷,爱奇艺,腾讯,百度,B站等等,但也有爬取不下来的视频,爬取不下来就用youtube-dl试试,下载的位置就是你cmd的当前目录下
youtube-dl下载视频
1.输入youtube-dl --help
显示使用说明
youtube-dl [OPTIONS] URL [URL ...]
选项:
常规选项:
-h,--help打印此帮助文本并退出
--version打印程序版本并退出
-U,--update将此程序更新为最新版本。确保你有足够的
权限(如果需要,使用sudo运行)
-i,-ignore-errors继续出现下载错误,例如,跳过播放列表中不可用的视频
--abort-on-error如果出现以下情况,则中止下载其他视频(在播放列表或命令行中):
发生错误
--dump-user-agent显示当前浏览器标识
--list-extractors列出所有支持的提取器
--extractor-descriptions所有支持的提取器的输出描述
--force-generic-extractor强制提取以使用通用提取器
--default-search PREFIX使用此前缀表示不合格的URL。例如,“ gvsearch2:”下载两个视频
从google-youtube-dl“大苹果”视频中获取。使用值“ auto”让
youtube-dlguess(在猜测时会发出“ auto_warning”警告)。只是“错误”
引发错误。默认值“ fixup_error”修复损坏的URL,但发出一个
如果无法执行而不是搜索,则返回错误。
--ignore-config不读取配置文件。在全局配置文件中给出时
/etc/youtube-dl.conf:请勿阅读〜/ .config / youtube-中的用户配置
dl / config(在Windows上为%APPDATA%/ youtube-dl / config.txt)
--config-location PATH配置文件的位置;配置的路径或其包含
目录。
--flat-playlist不提取播放列表的视频,仅列出它们。
--mark-marked观看了Mark视频(仅限YouTube)
--no-mark-watched不标记观看的视频(仅限YouTube)
--no-color在输出中不发出颜色代码
网络选项:
--proxy URL使用指定的HTTP / HTTPS / SOCKS代理。要启用SOCKS代理,请指定适当的
方案。例如socks5://127.0.0.1:1080 /。传入一个空字符串(--proxy“”)
直接连接
--socket-timeout SECONDS放弃之前要等待的时间,以秒为单位
--source-address IP绑定到的客户端IP地址
-4,-force-ipv4通过IPv4建立所有连接
-6,--force-ipv6通过IPv6建立所有连接
地理限制:
--geo-verification-proxy URL使用此代理来验证某些受地理位置限制的站点的IP地址。默认值
由--proxy指定的代理(如果不存在该选项,则不指定)用于
实际下载。
--geo-bypass通过伪造X-Forwarded-For HTTP标头绕过地理限制
--no-geo-bypass不要通过伪造X-Forwarded-For HTTP标头来绕过地理限制
--geo-bypass-country代码使用明确提供的两个字母的ISO 3166-2强制绕过地理限制
国家代码
--geo-bypass-ip-block IP_BLOCK使用CIDR中明确提供的IP块强制绕过地理限制
符号
视频选择:
--playlist-start NUMBER个播放列表视频开始(默认为1)
--playlist-end NUMBER个播放列表视频结尾(默认为最后一个)
--playlist-items ITEM_SPEC要下载的播放列表视频项目。在播放列表中指定视频的索引
如果要下载视频,请用逗号分隔,例如:“-播放列表项1,2,5,8”
在播放列表中索引为1、2、5、8。您可以指定范围:“-播放列表项目
1-3,7,10-13“,它将下载索引为1、2、3、7、10、11、12和13的视频。
--match-title REGEX仅下载匹配的标题(regex或无大小写的子字符串)
--reject-title REGEX跳过下载以找到匹配的标题(regex或无大小写的子字符串)
--max-downloads下载NUMBER个文件后中止NUMBER个中止
--min-filesize SIZE请勿下载任何小于SIZE的视频(例如50k或44.6m)
--max-filesize SIZE请勿下载任何大于SIZE的视频(例如50k或44.6m)
--date DATE Downloa
2.youtube-dl
的用法和you-get
大差不差
基础用法:youtube-dl {视频地址}
程序自动选择最佳下载
参数用法:youtube-dl -F {视频地址}
列出所有格式youtube-dl -f {视频序号} {视频地址}
下载指定格式
*打印所有格式*
youtube-dl -F https://www.bilibili.com/video/BV1FE411c7co?spm_id_from=333.851.b_7265706f7274466972737431.7
[BiliBili] 1FE411c7co: Downloading webpage
[BiliBili] 1FE411c7co: Downloading video info page
[info] Available formats for 1FE411c7co:
format code extension resolution note
0 flv unknown
1 flv unknown
2 flv unknown 74.92MiB (best)
*下载指定序号的格式*
youtube-dl -f1 https://www.bilibili.com/video/BV1FE411c7co?spm_id_from=333.851.b_7265706f7274466972737431.7
[BiliBili] 1FE411c7co: Downloading webpage
[BiliBili] 1FE411c7co: Downloading video info page
[download] Resuming download at byte 35838888
[download] Destination: 【原创曲】NEXT COLOR PLANET【PV付】-1FE411c7co.flv
[download] 48.3% of 74.92MiB at 2.65MiB/s ETA 00:14
2 comments
有点麻烦,有专门的可视化工具的。python来弄时间成本太高了。不过这个库可以用来爬取全站资源吗?估计爬一会就403了
没试过,看应用场景吧,我
就下几个视频而已,可以满足。