Git Product home page Git Product logo

pyjun / mooc_downloader Goto Github PK

View Code? Open in Web Editor NEW
4.2K 70.0 753.0 16.49 MB

学无止下载器,慕课下载器,Mooc网课下载,慕课网,**大学,网易云课堂,有道精品课,有道领世,腾讯课堂,B站课堂,中公网校,新东方,高途,途途,学浪,抖音课堂,小鹅通,千聊,兴趣岛,超星学习通,学银在线,智慧职教,智慧树,学堂在线,爱课程;支持视频课件同时下载

Home Page: https://www.xuewuzhi.cn/downloader

Python 100.00%
downloader imooc mooc python xuetangx zhihuishu keqq chaoxing icourse163 study163

mooc_downloader's Introduction

基于Python 爬虫的慕课视频下载【开源代码停止维护,软件仍在维护更新】

1. 项目简介:
  • 项目环境为 Windows10, Python3
  • 用 Python3.6 urllib3 模块爬虫,涉及模块包括标准库、三方库和其它开源组件,已打包成exe文件
  • 支持Mooc视频,字幕,课件下载,课程以目录树形式下载到硬盘,支持Potplayer播放
  • 支持**大学,网易云课堂,有道精品课,有道领世,腾讯课堂,中公网校,新东方,小鹅通,学浪,抖音课堂,B站课堂,高途课堂,途途课堂,千聊,兴趣岛,爱课程,学堂在线,慕课网,超星学习通(学银在线),智慧树,智慧职教,二十大慕课网课的视频课程下载,核心下载调用 Aria2c
  • 用户可以直接下载 Release 下的 学无止下载器 安装即可使用
  • 有关下载器的使用以及相关问题,点击查看Mooc下载器帮助文档
2. 功能演示:

demo1.png

demo2.png

4.项目文件
  • Mooc_Main.py 整个项目的主程序, 其实是调用了 Mooc_Interface

  • Mooc_Interface.py 人机交互接口模块

  • Mooc_Config.py Mooc 的配置文件

  • Mooc_Base.py Mooc 抽象基类

  • Mooc_Potplayer.py 用于生成专用于 Potplayer 播放的 dpl 文件

  • Mooc_Request.py 用 urllib 包装的一个Mooc请求库

  • Mooc_Download.py 调用 Aira2c 下载的命令接口

  • Icourses 有关爱课程的模块包

  • Icourse163 有关**大学慕课的模块包

    • Icourse163_Base.py **大学慕课下载器的基类,继承自 Mooc_Base
    • Icourse163_Config.py 配置文件
    • Icourse163_Mooc.py **大学慕课下载器得子类,继承自 Icourse163_Base.py
5.运行项目

请确保在项目工程的根目录下,然后在终端输入以下指令(python3 环境,无依赖的第三方模块)

python -m Mooc
6.打包指令
  1. 首先确保已经安装 pyinstaller,若未安装,则用 pip 安装,打开终端,输入:

    pip install pyinstaller
  2. 然后在项目工程的根目录下,终端输入:

    pyinstaller Mooc.spec
  3. 最后会在项目工程根目录下出现一个dist文件夹,该文件夹会出现一个Mooc-3.4.0.exe程序

package.png

7.注意事项

项目代码已好久未更新,Releases下有我打包好的exe文件,可直接下载使用~ 【该项目为早期开源的代码,最新版本代码未开源】

  1. 新版代码涉及网站爬虫、解析、解密,开源后容易和谐失效
  2. 新版本涉及太多的模块依赖(包括且不限于nodejs,electron,ariac2,annie,ffmpeg,wkhtmltopdf和一些自编译的python依赖库),难以分离出可独立可用的开源版
  3. 实在没有精力同时维护二个开源和闭源版本的代码
  4. 该项目并非完整的开源项目,提供的软件无病毒,可免费使用(也包含付费功能)

mooc_downloader's People

Contributors

pyjun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mooc_downloader's Issues

是否可以在第一个界面中加入可以修改保存下载文件位置的选项?

默认是c盘,但是有些人c盘空间并不是很大,而下载的视频文件则有时动辄数十G。
是不可以将第一个界面中的“输入一个视频课程网址(q退出):”改为“输入一个视频课程网址(m输入文件保存位置,q退出):”。并加入修改保存位置逻辑。
我对pythony一窍不通,希望哪位大牛能加入这一功能。先谢过了。

Linux下可用,多线程下载工具

首先安装工具axel

centos 安装 yum install axel
ubuntu 安装'sudo apt install axel'

这个是什么?

axel是一个强大的多线程下载工具

为什么不用wget,是不是看不起它?

我先把你们要吐的槽给吐了,哈哈哈,并非是看不起它,而是用它的时候报文件名过长,我就算是指定了本地文件名也是不行的。所以换了一个下载工具,大功告成

源文件内容更改

当你git clone成功过后,进入到该文件
cd ./Mooc_Downloader
wget -c https://olaindex.lldxgo.com/show/toolP/Mooc_Download.py
cp Mooc_Download.py Mooc/Mooc_Download.py
rm -f Mooc_Download.py
就修改完成了

后记

不过这样的话,就丢掉了下载状态信息等,也就是说你下载失败了要继续要在,得从头开始下载,不过我能用了,就不改了
不过linux版本就这样,有些解析不出来,还是却大家下exe版本的,嘿嘿。
有问题可以入群讨论,就这个大群咳咳

自定义下载章节功能

希望增加自定义章节下载功能,每次其实只需要几章,不必从头到尾下一遍,另外希望有图形界面

对于旧版本该如何卸载?发现不是覆盖安装

每一次发布新版本,旧版本要怎么卸载掉呢?或者能不能考虑改成将新版本在旧版本的基础上覆盖安装,另外,下载课件为啥只有PDF格式可选,不能下载它的原版格式吗?因为发现PDF格式转码有问题呀,一些包含公式的源文档,下载器下载下的PDF里会有乱码……

学堂在线无法下载

输入一个视频课程网址(q退出, m菜单): https://www.xuetangx.com/course/BJFU01011001735/4230180

视频课程链接不合法!请输入包含以下网址前缀的链接!

获取链接

可不可以加一个仅获取下载链接的选项呢

希望可以有一个cookies登陆的方法

这是我将浏览器里cookies字符串转化成requests里可调用的cookies的方法

    def __get_cookies():
        cookies_str = input("请输入浏览器中的cookies:")
        
        cookies = {}
        for line in cookies_str.split(';'):
            key, value = line.split('=', 1)
            cookies[key] = value
        return cookies

调用aria2返回22错误吗

WeChat305e22926ad71d71d552f335bd134517

是不是icourse163屏蔽了aria2, 为什么我运行mooc_downloader http状态码status=403 然后aria2返回22,mooc_downloader就说无法下载资源。

Linux下运行该程序的办法:

由于本人的系统时linux,所以找到想办法把这个程序在Linux上跑了起来。
首先要安装aria2,然后进入项目目录,执行以下命令:

rm Mooc/aria2c.exe
ln -s /usr/bin/aria2c Mooc/aria2c.exe

下载完成后可能会提示出错,但是应该是应为部分命令在Linux下不支持(比如cls),实际上下载没问题。

如果上面的方法不可用,可以尝试把Mooc.spec下的Mooc\aria2c.exe替换为/usr/bin/aria2c。由于代码没研读,这个文件中的datas这个数组不知道是干什么的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.