写了一个慕课网视频批量下载脚本生成脚本

2015-10-09 18:15:49 +08:00
 Soar360

标题是不是很绕……
其实就是一段 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++;
    });
})();
14247 次点击
所在节点    JavaScript
48 条回复
del1214
2015-10-10 09:36:47 +08:00
好像没有效果啊
del1214
2015-10-10 09:39:24 +08:00
用错地方了,还真好用
Heavytiger
2015-10-10 11:49:32 +08:00
真心好用。 thanks very much!
Myflos
2015-10-10 12:05:51 +08:00
大赞!要是能自动改名就更好了
@Soar360
Soar360
2015-10-10 12:09:49 +08:00
@Myflos
是自动更名啊。
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 的多任务貌似不能同时
nijux
2015-10-10 12:27:28 +08:00
移动端都有离线功能 可以下载下来的
zjqzxc
2015-10-10 12:28:39 +08:00
@Rico wget 单进程单线程,同时下载就多开几个 screen 。
没试过能不能 axel 多线程,如果能的话其实一个一个下问题也不大。
zjqzxc
2015-10-10 12:45:37 +08:00
@Rico axel -n 10 单任务已经把带宽跑满了,,不打算纠结多任务了。
第 7 行改为: var cmd = 'axel -n 10 -o "' + dic[data.id] + " - " + data.name + '.mp4" ' + data.url;
-n 后面的值根据总带宽除以 wget 稳定后的速度再稍微富裕几个线程
Soar360
2015-10-10 13:36:52 +08:00
@zjqzxc 有的搞,谢谢。
Rico
2015-10-10 13:45:37 +08:00
嗯.谢谢!
Rico
2015-10-10 13:46:05 +08:00
@zjqzxc 嗯,谢谢
intsilence
2015-10-10 14:33:26 +08:00
很实用,感谢。
M4ster
2015-10-10 14:50:04 +08:00
用 Node.js 写了个 imooc 小爬虫
https://github.com/monkeym4ster/imooc_crawler
bozong
2015-10-10 14:55:52 +08:00
@M4ster 666666
M4ster
2015-10-10 15:49:40 +08:00
Screenshot:
hronro
2015-10-10 15:52:21 +08:00
有个小 bug ,有的章节可能是练习题,但是还是把它解析成 MP4 了
Soar360
2015-10-10 16:16:51 +08:00
@hronro 能给个链接吗?
fishlee
2015-10-10 17:22:19 +08:00
谢谢,先拿去了
angusun
2015-10-10 17:31:43 +08:00
mark

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/226681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX