标题是不是很绕……
其实就是一段 Javascript 代码,用来生成批量下载视频的 shell 代码。
首先进入教程学习页面,比如这个: http://www.imooc.com/learn/514
然后 F12 打开控制台( Chrome 浏览器),把写好的脚本粘贴执行。
执行完毕后,再输入:“ document.cmd ”就可以拿到下载命令了。直接 shell 执行或者在 Windows 下搞一个 wget 放在同级目录即可。
脚本如下:
(function () {
document.cmd = '';
var dic = {};
function getJsonCallback(json) {
var result = json.data.result;
var data = { name: result.name, id: result.mid, url: result.mpath[0] };
var cmd = 'wget -O "' + dic[data.id] + " - " + data.name + '.mp4" ' + data.url;
console.log(cmd);
document.cmd += cmd;
document.cmd += '\r\n';
}
var index = 1;
$('.J-media-item').each(function () {
var url = $(this).attr('href');
var id = url.split('/')[2];
var jsonPath = "http://www.imooc.com/course/ajaxmediainfo/?mid=" + id + "&mode=flash";
dic[id] = index;
$.getJSON(jsonPath, getJsonCallback);
index++;
});
})();
2015 年 10 月 10 日:修正错误下载练习题的问题,感谢 @hronro 的反馈。
(function () {
document.cmd = '';
var dic = {};
function getJsonCallback(json) {
var result = json.data.result;
var data = { name: result.name, id: result.mid, url: result.mpath[0] };
var cmd = 'wget -O "' + dic[data.id] + " - " + data.name + '.mp4" ' + data.url;
console.log(cmd);
document.cmd += cmd;
document.cmd += '\r\n';
}
var index = 1;
$('.J-media-item').each(function () {
var url = $(this).attr('href');
var data = url.split('/');
var type = data[1];
var id = data[2];
if(type != 'video'){
return;
}
var jsonPath = "http://www.imooc.com/course/ajaxmediainfo/?mid=" + id + "&mode=flash";
dic[id] = index;
$.getJSON(jsonPath, getJsonCallback);
index++;
});
})();
1
z742364692 2015-10-09 19:18:39 +08:00 via Android
这个必须赞,电脑上就是不能下载,麻烦
|
2
overlords 2015-10-09 20:30:18 +08:00 1
都已经免费了 就不要这样子搞么 投资人看到不好啊。
|
4
uxstone 2015-10-09 20:43:32 +08:00
慕课网靠什么赚钱?
网易云课堂是含金钥匙出生的 极客学院有 VIP 机制, 慕课网全免费,靠什么盈利? |
7
lxjsmdc 2015-10-09 21:34:37 +08:00
正好下载了在跑步机上看
|
8
iamcho 2015-10-09 22:23:53 +08:00
赞一个
|
9
Dsljlbaby 2015-10-09 22:30:00 +08:00 via Android
顶一个
|
10
dadaboy 2015-10-09 22:31:31 +08:00
Like.
|
13
kappa 2015-10-09 23:09:51 +08:00
前端不熟悉,博览网 boolan.com 有办法搞定吗?
|
14
lxjsmdc 2015-10-09 23:10:13 +08:00
|
16
badcode 2015-10-10 08:09:07 +08:00 via iPhone
好吧! IDM 足矣
|
18
Rico 2015-10-10 09:17:43 +08:00
太实用了,大赞!
|
19
cszchen 2015-10-10 09:25:19 +08:00
做成浏览器插件会不会好一点
|
21
del1214 2015-10-10 09:36:47 +08:00
好像没有效果啊
|
22
del1214 2015-10-10 09:39:24 +08:00
用错地方了,还真好用
|
23
Heavytiger 2015-10-10 11:49:32 +08:00
真心好用。 thanks very much!
|
26
Rico 2015-10-10 12:22:14 +08:00
win 下把脚本放入一个 txt 文件然后
``` @echo off for /f "tokens=*" %%i in (download.txt) do (start cmd /c %%i & ping -n 2 127.1>nul) pause ``` 保存成 bat 就会批量下载了,wget 的多任务貌似不能同时 |
27
nijux 2015-10-10 12:27:28 +08:00
移动端都有离线功能 可以下载下来的
|
28
zjqzxc 2015-10-10 12:28:39 +08:00
@Rico wget 单进程单线程,同时下载就多开几个 screen 。
没试过能不能 axel 多线程,如果能的话其实一个一个下问题也不大。 |
29
zjqzxc 2015-10-10 12:45:37 +08:00
|
31
Rico 2015-10-10 13:45:37 +08:00
嗯.谢谢!
|
33
intsilence 2015-10-10 14:33:26 +08:00
很实用,感谢。
|
34
M4ster 2015-10-10 14:50:04 +08:00
用 Node.js 写了个 imooc 小爬虫
https://github.com/monkeym4ster/imooc_crawler |
36
M4ster 2015-10-10 15:49:40 +08:00
Screenshot:
|
37
hronro 2015-10-10 15:52:21 +08:00
有个小 bug ,有的章节可能是练习题,但是还是把它解析成 MP4 了
|
39
fishlee 2015-10-10 17:22:19 +08:00 via Android
谢谢,先拿去了
|
40
angusun 2015-10-10 17:31:43 +08:00
mark
|
41
hronro 2015-10-10 18:02:21 +08:00
@Soar360 嗯,找了个这种情况特别多的:
http://www.imooc.com/learn/141 https://ooo.0o0.ooo/2015/10/10/5618e212e3c6d.png |
45
LSkyler 2015-10-14 20:12:10 +08:00
太实用了,大赞!o.
|
46
fhefh 2015-12-04 13:04:16 +08:00
正好有要下载的教程 嘿嘿
|
47
zb3040 2017-04-21 13:55:03 +08:00
请教楼主现在这个脚本还在更新吗? http://www.imooc.com/learn/822 ,这个视频用着段脚本获取不到 url
|