course-crawler icon indicating copy to clipboard operation
course-crawler copied to clipboard

添加新的网站支持

Open TonySue2000 opened this issue 7 years ago • 9 comments

请问各位维护者能否添加对MOOC网站"北京高校优质课程研究会"(http://www.livedu.com.cn)的下载支持,

本来想为这个项目写点代码,可惜自己不会Python,只能做这点微小贡献,表示十分惭愧.

TonySue2000 avatar Nov 10 '18 07:11 TonySue2000

有空我试下,但最近应该是没时间

SigureMo avatar Nov 10 '18 11:11 SigureMo

@TonySue2000 已完成,麻烦看下issues23的最新更新内容

SigureMo avatar Nov 11 '18 10:11 SigureMo

多谢贡献,不过这个功能似乎有待完善. cookies结构是这样的吗?好像比网易的短不少:name=value; name=value; JSESSIONID=XXXXXXXXXXXX 但回车后有以下错误 Traceback (most recent call last): File "mooc.py", line 103, in main() File "mooc.py", line 96, in main livedu.start(args.url, config, cookies) File "/home/tony/下载/course-crawler-master/mooc/livedu.py", line 165, in start course_info = get_summary(url) File "/home/tony/下载/course-crawler-master/mooc/livedu.py", line 27, in get_summary for chapter_lable in home_soup.find('div', class_='vice-main-kcap')
AttributeError: 'NoneType' object has no attribute 'find' 如何解决?@SigureMo

TonySue2000 avatar Nov 21 '18 12:11 TonySue2000

cookies结构应该是没问题的,最好提供下具体课程的网址,白天我看下是出了什么问题 @TonySue2000

SigureMo avatar Nov 21 '18 17:11 SigureMo

http://www.livedu.com.cn/ispace4.0/moocxjkc/toKcView.do?kcid=216&bmrs=2199 课程链接奉上

TonySue2000 avatar Nov 22 '18 02:11 TonySue2000

已完成~

问题简述: livedu整体数据是存储在页面内的,基本没有异步加载过程,所以解析起来很烦但并不难,但标题数据在学习页面只显示一部分(后面居然干脆...了),所以chapter_name我是在课程主页解析的,而lesson_name我是直接在学习页面的具体学习课程内解析的,由于所有数据都是从页面内解析,这就过分的依赖于页面的一致性,刚刚出现的问题就是从主页解析chapter_name时候发生无法解析的错误,我也没想到居然还有两种主页,当然不排除还有第三种,懒得找了,遇到再说 刚刚遇到的页面是:悖论:思维的魔方,而我之前测试使用的两个课程是这样的:人工智能,所幸学习页面都一样,不然就要写两套代码了……

修复链接: :bug: Fix bug of livedu

SigureMo avatar Nov 22 '18 05:11 SigureMo

嗯,输了之后又报错???直接Po命令行了 `tony@kali:~/下载/course-crawler-master$ python3 mooc.py http://www.livedu.com.cn/ispace4.0/moocxjkc/toKcView.do?kcid=216 输入 Cookie:

name=value; name=value; JSESSIONID=AE351313B95DE23F83B3 Traceback (most recent call last): File "mooc.py", line 103, in main() File "mooc.py", line 96, in main livedu.start(args.url, config, cookies) File "/home/tony/下载/course-crawler-master/mooc/livedu.py", line 171, in start course_info = get_summary(url) File "/home/tony/下载/course-crawler-master/mooc/livedu.py", line 23, in get_summary name = study_soup.find('dl', class_='content-a-title').find('dt').find('span').string AttributeError: 'NoneType' object has no attribute 'find' ` 话说这和Linux无关的吧,毕竟Python的一大卖点就是跨平台性呢

TonySue2000 avatar Nov 22 '18 12:11 TonySue2000

Win10、Ubuntu Server 16.04 测试正常,请重新尝试几次 我中午测试时候确实发现有一次在这里报错,但是之后无法复现也不明白是什么问题,猜测是网络连接不稳定引起的

tim 20181122212134

SigureMo avatar Nov 22 '18 13:11 SigureMo

成功了,多谢大佬

TonySue2000 avatar Nov 22 '18 15:11 TonySue2000