青小蛙之前遇到了一个问题,要下载一部动画片以方便在没有网络的时候观看。找遍全网,发现在 cntv 有提供完整的视频,并且可以免费播放,于是拿出大神器 youtube-dl 工具下载的时候又发现,想要一次性下载 100 多集的内容,用手动的方法有些不科学,怎么办?
嗯,其实有了 youtube-dl,下载是非常非常简单的,只需要使用命令行:
youtube-dl http://tv.cntv.cn/video/VSET100333776130/xxxx
就能将视频文件下载下来了。但是,就像上面这个网站,除了每页的 12 个视频地址外,还有… 10 个翻页
在这里感谢 @大鱼老师 帮忙搞定的 118 集全链接。
其实青小蛙首先想到的是使用正则表达式来过滤这些 URL,但在尝试的时候发现,正则这种东西长时间不用居然…居然会忘干净!折腾了很久放弃。
在 tg 好友 @Yagami 的提醒下:「有个在线工具 extract url from text」,青小蛙茅塞顿开,继续折腾。
首先,尝试自己提取链接,总麻烦鱼老师也不是办法。从网页源代码中找到视频部分,然后稍微处理一下:
将相对地址替换为绝对地址后,我们就有了粗滤的、包含视频链接的 HTML 代码。
(这里需要手动翻页 10 次,不知道有没有更好的办法)
然后,青小蛙搜索了到了两款国内可以用的从文本中提取链接的在线工具:
- URL Extractor For Web Pages and Text
- Link Extractor
- 如果你知道类似服务,欢迎留言推荐
其中第一款还有过滤功能,更强大一些,青小蛙这次就用这个了。
将代码复制进去,URL Extractor For Web Pages and Text 还支持从文件导入,如果有比较大量的内容需要转换的话。
然后跳过第 2 步,点击 Extract,所有的链接就排列好了,去除不需要的链接,保存为 .txt 文件,完成获取链接的任务。
其实,展开第 2 步,是可以直接过滤需要的链接的,在 Only show URLs of these social media sites: 里输入 cntv.cn 就可以了。不过这里默认获得的地址非常规整,也就无所谓了。
最后,使用 youtube-dl 批量下载:
youtube-dl -c -i -a cntv.txt
解释一下:
- -c 断点续传
- -i 跳过错误继续下载
- -a cntv.txt 从这个 txt 文件中获取 URLs 进行批量下载
根据网络条件,需要一段时间下载。
下载完成后,去文件夹看一下下载情况,可能会有部分下载失败,这是只需要挑选出来重新下载就可以了。
嗯,不说了,青小蛙去看动画片了。
好棒。
———-
看懵逼了 也太复杂了
不复杂。就是依赖在线分析工具,把链接提取出来,批量down。。。。
小青蛙,我想从文章开头开始打击你。
“青小蛙之前遇到了一个问题,要下载一部动画片以方便在没有网络的时候观看。找遍全网,发现在 cntv 有提供完整的视频,并且可以免费播放,于是拿出大神器 youtube-dl 工具下载的时候又发现,想要一次性下载 100 多集的内容,用手动的方法有些不科学,怎么办?”
|–为何不多搜索一下呢?
|–火车宝宝第一季动画:http://pan.baidu.com/s/1dD9rO3J 密码:zrtm
|–火车宝宝第二季动画:http://pan.baidu.com/s/1ntFhjvz 密码:sydd
|–压缩文件解压密码为无猜网址:www.lxwc.com.cn
(虽然我知道你发这篇文章是想介绍youget / youtube-dl这种下载方式,23333)
恰恰特快车 (火车宝宝) Chuggington 全2季78集+3集特别篇
教训的是..多谢链接
我好奇地是,你是用百度搜索出来的吗?怎么拿到的云盘密码?
一些资源发布站点会公布密码呀
还有个叫做云盘万能钥匙的。不谢。
我是先用网盘搜索引擎搜索「恰恰特快车」,结果只搜出来一集。好在这一集的文件名里就带着那个论坛的网址,我就进那个网址搜结果,直接搜到全集的百度网盘地址啦。
这个好,不过我喜欢用 you-get 下载
var str = ”;
(function episodeToString() {
pager3.doPage(‘1’);
while (/pager3/.test(document.querySelector(‘#page .btn_next’).href)) {
var episodes = document.querySelectorAll(‘#fpy_ind04 dd .text a’);
for (var i = 0;i< episodes.length;i++) {
str += episodes[i].href + "\n";
}
document.querySelector('#page .btn_next').click();
}
})();
console.log(str);
打开浏览器调试工具 – 控制台,复制上面的脚本运行一下就行了
测试的地址是:http://tv.cctv.com/2017/03/24/VIDAOVn1JjNGq65q8hRMXQEx170324.shtml
JS 大神!
又仔细看了下原来数据就在页面里啊,那就更简单了
var str = ”;
for (var item of jsonData2) {
str += item.url + “\n”;
}
console.log(str);
哇,赞
简单有效
也可以用 autopagerize 之类的自动翻页插件把所有页面加载了再一次性提取链接。
有时懒得折腾时我就是这样在网上抓图的……
注:提取链接可以在控制台里获取document.links再过滤。
autopagerize 这个主义太赞了
you-get 原来可以正常下载 youku 视频,现在不行了,下了很多都不行,试了 N 天,崩溃……
Batch Link Downloader
https://chrome.google.com/webstore/detail/batch-link-downloader/aiahkbnnpafepcgnhhecilboebmmolnn
下面这个民间改进的版本,按住“Shift”同时点击“Copy”按钮就能够将选中的链接以空格符连接起来后复制到剪贴板。
https://pan.baidu.com/s/1dhBioe
膜拜各位大师
我一直用这个chrome的插件
https://chrome.google.com/webstore/detail/link-klipper-extract-all/fahollcgofmpnehocdgofnhkkchiekoo
我一般是 https://chrome.google.com/webstore/detail/instant-data-scraper/ofaokhiedipichpaobibbnahnkdoiiah 加油猴翻页脚本
菜鸟求科普!txt 文件不需要指定路径?为什么我用 you-get却不成功呢?求 you-get 的类似方法 pls
如果用 youtube-dl 的这方法下载哔哩哔哩,会提示错误
ERROR: Unable to download webpage: nonnumeric port: ” (caused by InvalidURL(u”nonnumeric port: ‘\x00′”,))
太好了,原来 you-get 也可以,用-h 就可以看到命令怎样用了,我用这个:
you-get –no-caption(不下载字幕) –input-file “(txt文件路径)” -o “(输出文件路径)”
至于 txt 文档的链接,是inoreader 里筛选过后在浏览器打开用Anonym提到的Batch Link Downloader获取。再用快捷键(Alfred 之类)一键导入手机的话。。哈哈!虽然有无线流量卡,但这个更爽!省事!
还是不行,只会重复下载第一个链接,虽然下载的文件名是各链接的标题。求方法。
http://tv.cctv.com/2017/03/24/VIDAOVn1JjNGq65q8hRMXQEx170324.shtml
页面任意空白处,查看源代码。直接有118集的链接。
你们搞得这么高端 批量这种不是有硕鼠?
可惜现在 硕鼠 维棠 都不能分析下载优酷 爱奇艺 的视频了,记得好像是因为法律因素。
对!硕鼠硕鼠!当年给我家小仔仔批量动画片全靠它了
我想下载台湾大学几个老师的开放式课程,一直没有办法
可以试试这个工具
同样的目的用 you-get到底怎样才行?弄成 txt 文件后用-i 能读取文件信息但下载就会重复下载第一个链接的文件,加上-l 更是提示“reading playlist from a file is unsupported and won’t make your life easier”,作者是不让批量下载么??
好吧,youtube-dl 成功,you-get 不行,有办法的大神请指教方法,谢谢。
jqueryanywhere ,有了它,还要什么插件提取链接啊?其实很多网站自带jquery,f12进去要啥有啥
看错了 是别家的 晕
我就想问一下iqiyi的格式怎么转为一般视频格式。
用小乐图客的JS代码一键功能就可以啊,里面自带了MP3,MP4按钮,可以分别一键提取网页中的音频链接、视频链接啊
喽~正在学正则,楼主要的正则来了 ,不少正则网站不支持反向预搜索,不行的话下载Regex Match Tracer 试试
(?<!<a href=")(?<=<a href=")(/video/VSET100333776130/\w+)
发出来关键字被网页隐藏了一部分~又不能贴图,算了 还是用其他方法吧
我都是用维棠下载器的