标题是不是很绕……
其实就是一段 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.namespan class="p">, 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 ![]() 都已经免费了 就不要这样子搞么 投资人看到不好啊。 |
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 |