You-Get Python实现多网站视频下载
这是Hackpython第一篇文章,比较草率,本想做在线教育的,无奈,时间比较有限,而且目前也没得到什么正反馈,所以这个号目前的职责是分享出我看见的与Python有关或无关的东西,前路慢慢,随便看看,随便聊聊。
今天回炉微积分,想将相应的视频都下载下来,这个需求泛化一下就是下载各个视频网站上的视频,国内的环境造就了很多视频网站都是所谓的VIP,这个文章最后提几个思路,先看如何下载这个普通网站上的视频。
自己解析url获得下载url不是不行,而是太累,懒使人进步,不想做那么多,所以必须优化步骤,这里一样。自己的需求不特别,那么肯定有相应的工具,如parsevideo
https://www.parsevideo.com/
支持你见过或没见过的大多数网站,自己写个简单爬虫,将网站url获取,并传到这个网站上获得真实的URL则可。
嗯....不想动手写爬虫,所以找到了You-GET
https://github.com/soimort/you-get
人气很高,比较靠谱,安装简单,直接看文档则可。
用法就很简单了
you-get 'https://www.youtube.com/watch?v=jNQXAC9IVRw'
其他细节
you-get 'url' # 最简单的下载
you-get -i 'url' # 列出视频信息,可以看到该网页提供的视频的信息,一般默认的就好,但有时候也有更高清的可供选择,通过这种方式可以获取其itag,然后用下面的方式进行下载
you-get --itag=127 'url' # 下载指定质量的视频,国内网站一般默认就是最高清的,但是国外的还有更高清的
you-get -x 127.0.0.1:8118 'url' # 设置http代理
当然,也可以在代码中使用,所以爬取各大视频网站中免费视频的逻辑也就有了,普通的url获取爬虫,然后将爬取的url交个you-get下载,如下
from you_get.extractors import * # 可以获取到各个网站的下载器
download_urls([url], title, 'mp4', 0, './videos')
当然,我个人还行喜欢用命令行的方式,结合在代码中一样使用
def cmd_download(url, filename):
info = os.system(r'you-get --debug -o C:\Users\rHotD\Downloads\wangyi_open\Linear_algebraic_exercises -O {} {}'.format(filename, url))
print(info)
return 1
you-get的关键词就这么多,细节都可以自己搜索。
至于怎么破解VIP,思路有两个
1.共享会员,Android下有成熟的软件了,用过,比较稳。 2.强行突破,原理其实是你请求了对方服务器,对方服务器中有VIP,通过VIP账号,可以获得加密后的正式URL,解密则可,这应该要比较高的JS技巧。
两种途径:
http://tv.dsqndh.com/
油猴脚本 https://greasyfork.org/zh-CN
下一篇预告,写python爬虫的代理,因为最近老是看见,“听说你写了个爬虫没几下就被封了”的卖课推广文章,目前这个号只有5个粉丝,应该是没人找我写卖课推广了,所以,只能自己分享点。
坑:you-get有时下载会断,使用时自己做好异常处理。