Python

自己平时搞网站现需要用到许多视频,有些网站又下载不下来,要不就有水印什么的,要不就让你下客户端什么什么的,如此的话那就用现成Python库爬取一下咯.....

 

环境提示

 
1.Python的运行环境,安装的时候记得一定要把环境变量勾选上,不然就自己手动去加了。下载不了的同学,可以在本站的开放网盘里下载

勾选安装

 
2.程序安装完了,cmd里输入python进入了界面就说明环境变量正常
 
3.cmd先输入python -m pip install --upgrade pip更新下pip,然后使用pip安装you-getyoutube-dl两个库。

$ pip install you-get
$ pip install youtube-dl

 
4.这样环境就已经安装好了,是不是很简单。
 

you-get下载视频

1.直接在cmd里输入you-get {视频链接} 比如B站的视频,直接复制下来链接,程序会自动选择视频格式下载,如图所示。

B站视频
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
Last modification:June 19, 2021
如果你想请我喝奶茶的话