python的中国大学mooc数据分析与展示(源码)
随着信息时代的来临,在线学习得到了飞快的发展,特别是 MOOC 的崛起和发展,在全球掀起了一股狂潮。因为其开放性和大规模等特点,在线学习也方便快捷,更加的符合信息时代的发展。MOOC的讯速发展对远程教育产生十分有利的影响,其中中国大学MOOC对现在学生影响尤为巨大。中国大学MOOC平台课程种类繁杂,课程数量庞大。本课题的目的就是方便学生查询课程信息,采用Python网络爬虫技术爬取中国大学MOOC平台上的课程数据,将得到的课程数据进行清洗并存进MySQL数据库中,最终采用Qt技术展示出来。并为研究中国大学MOOC相关数据抓取的Python爬虫提供理论参考和实践经验。关键词 中国大学MOOC,网络爬虫,Python,Qt
目 录
1 引言 1
1.1 课题背景 1
1.2 国内外现状 1
1.2 本课题的意义 2
2 相关技术 2
2.1 网络爬虫技术发展现状 2
2.2 Python 爬虫抓取数据的 3 种途径 3
2.3 基于 Python 的爬虫特点 3
2.4 爬虫基本工作流程 4
2.5 Python爬虫基础 6
2.6 Robot协议 7
3 基于爬虫的数据采集系统 8
3.1 系统总体架构设计 8
3.2 开发环境介绍 8
4 数据采集模块的设计与实现 9
4.1 目标网站结构分析 9
4.2 数据包抓取 10
4.3 请求报文和响应报文分析 11
4.4 URL编码与解码 12
4.5 数据抓取模块程序编写 13
4.6 数据清洗 15
4.7 数据存储 15
5 可视化数据查询模块的设计与实现 18
5.1 Qt介绍 18
5.2 系统界面 18
5.3 数据查询 19
5.4 数据导出 20
5.5 可视化数据展示 21
结 论 27
致 谢 28
*好棒文|www.hbsrm.com +Q: *351916072*
参 考 文 献 29
附录A 31
1 引言
1.1 课题背景
MOOC,一个大型的开放式网络课程平台。自美国2012年开设免费的网络学习平台,MOOC迎来了飞速发展的阶段,越来越多的顶尖大学也加入其中,使更多的学生可以有更多的学习机会。2013年是MOOC走进中国高校的一年,国内的许多顶尖高校纷纷进驻MOOC,至此,MOOC在中国落地生根。2014年5月,中国大学MOOC正式成立,由网易云课堂与爱课程网合作推出,这标志着在线学习课程的全面发展,使每位学生都能在线接受优质的课程。虽然MOOC的发展良好,但是不得不面对一个巨大问题,高退学率是一个不得不面对的问题。教师与学生不能线下交流可能也是一个原因,师生间的沟通就会缺乏。也有许多认为MOOC很多教学模式是传统模式的翻版,只是把课堂的东西照搬到网上课堂。如何解决这些问题,可能是MOOC下一阶段发展的关键。随着在线学习的不断发展,中国大学MOOC网被越来越多的人选择,在线课程的不断增加,选课人数也成倍数式增长。虽然学生的不断增长,但是课程的淘汰率,弃学率,教学质量仍然是一个大问题。本课题使用了Python语言编写网络爬虫来爬取中国大学MOOC网站上的数据,方便研究中国大学MOOC的发展以及我国在线课程的未来发展提供有利的参考。
1.2 国内外现状
1.2.1 爬虫技术发展历史
爬虫技术是搜索引擎系统的基础,爬虫技术能够自动爬取并解析网页与网页信息。自上世纪90年代,爬虫技术就已经开始兴起了。目前爬虫技术已经非常成熟,大量的商业搜索引擎的核心技术内容就是网络爬虫。近几年来,由于python语言的兴起以及python的简便性,python成为了爬虫开发使用最为广泛的语言。python开发社区有非常丰富的开源库,使得python成为了爬虫开发的主流。
1.2.2 爬虫现状与设计者需要面临的问题
爬虫技术发展经历了许多个年头,已经有许多优秀的开源库可以供爬虫开发者进行使用,但如今最大的难题不再是爬虫的开发进程,而是在网络资源如此多的时代,网页的内容更新速度十分之快,所以,爬虫能否又能够即时的检测到数据的更新并采取措施就成为了评判爬虫系统优秀的指标。
另一方面就是知识产权的问题,网页上的信息理论上也属于知识产权的范围,应当受知识产权的保护。所以大部分网站并不希望自己的信息被爬虫程序所爬取,开发人员会采取拦截网络爬虫的措施。
1.2 本课题的意义
随着信息时代的来临,在线学习的迅猛发展,在线学习方便快捷,大规模,开放性的特点,越来越多的人选择在线学习。其中的佼佼者中国大学MOOC也很受许多学生喜爱,随着更多课程的加人,各门各类课程多而繁杂,为了方便学生的选择,本课题基于Python语言编写的网络爬虫,对中国大学MOOC进行数据抓取,得出大量的数据再对中国大学MOOC上的各类数据进行整合分类,最后存进MySQL数据库。使用PyQt完成图形界面实现数据的可视化。可以直接在课程窗口查询课程信息,用户可以直接查看热门前十课程排行,方便用户了解每天的热门课程。其他课程信息也可以在可视化图形界面查看。
随着Web开发的发展,AJAX技术得到了更广泛的使用。为了能够使页面具有较好的交互性以及使用少一点的网络资源来改变页面,几乎所有的网站都在使用AJAX技术,极大的促进了web的发展。但对于爬虫技术来说,AJAX似乎并不太友好,AJAX会是web页面的DOM结构发生改变,所以初次抓取的页面文档里可能不包含所需的信息,如何在动态页面里爬取数据是一个难点,对于这种问题,最传统的方式就是分析页面的javascript资源内容,手动解析网页的请求加载过程,这种方式十分繁琐,有时网站还会对请求进行混淆,增大分析难度。另外一种方式就是采用浏览器自动化控制的方式,这样可以等待浏览器加载页面完成,当页面加载完成时再进行解析,这样就降低了动态页面的数据爬取难度。
2 相关技术
2.1 网络爬虫技术发展现状
网络爬虫在信息搜索和数据挖掘过程中扮演着重要的角色,对爬虫的研究开始于二十世纪九十年代,目前,爬虫技术已趋于成熟。网络爬虫通过自动提取网页的方式完成下载网页的工作,实现大规模数据的下载,省去诸多人工繁琐的工作。在国内,爬虫技术发展的相关的研究起步比较晚,但发展较为迅速。2003年开始,国内信息挖掘的学术会议普遍开展起来,在网络爬虫领域中的研究也越来越广泛。 2007年,浙江大学罗冰为传统的网络爬虫添加了解析模块和支持模块,完成了对加载内容的分析。北大天网是爬虫技术领域的领导者,在性能方面具有很大的优势,用当前的分布式代替以前的集中式,并且可以搜索10亿数量级的网页。 以Bagging 算法和PageRank 算法为主题的爬虫,一种由周明全、张翔等人于2010年提出的主题爬虫,并且他们还改进了 PageRank 算法。以及罗海波等人也实现了基Hits 算法和SharkSearch 算法的爬虫。近年来,通过各位学者们不断探索分析和不懈努力,动态网页信息抓取已经逐步实现,爬虫工具的性能也逐步提高。减轻了人工下载的负荷,实现高效快速下载工作,成为查询、分析整合数据不可缺少的工具。
目 录
1 引言 1
1.1 课题背景 1
1.2 国内外现状 1
1.2 本课题的意义 2
2 相关技术 2
2.1 网络爬虫技术发展现状 2
2.2 Python 爬虫抓取数据的 3 种途径 3
2.3 基于 Python 的爬虫特点 3
2.4 爬虫基本工作流程 4
2.5 Python爬虫基础 6
2.6 Robot协议 7
3 基于爬虫的数据采集系统 8
3.1 系统总体架构设计 8
3.2 开发环境介绍 8
4 数据采集模块的设计与实现 9
4.1 目标网站结构分析 9
4.2 数据包抓取 10
4.3 请求报文和响应报文分析 11
4.4 URL编码与解码 12
4.5 数据抓取模块程序编写 13
4.6 数据清洗 15
4.7 数据存储 15
5 可视化数据查询模块的设计与实现 18
5.1 Qt介绍 18
5.2 系统界面 18
5.3 数据查询 19
5.4 数据导出 20
5.5 可视化数据展示 21
结 论 27
致 谢 28
*好棒文|www.hbsrm.com +Q: *351916072*
参 考 文 献 29
附录A 31
1 引言
1.1 课题背景
MOOC,一个大型的开放式网络课程平台。自美国2012年开设免费的网络学习平台,MOOC迎来了飞速发展的阶段,越来越多的顶尖大学也加入其中,使更多的学生可以有更多的学习机会。2013年是MOOC走进中国高校的一年,国内的许多顶尖高校纷纷进驻MOOC,至此,MOOC在中国落地生根。2014年5月,中国大学MOOC正式成立,由网易云课堂与爱课程网合作推出,这标志着在线学习课程的全面发展,使每位学生都能在线接受优质的课程。虽然MOOC的发展良好,但是不得不面对一个巨大问题,高退学率是一个不得不面对的问题。教师与学生不能线下交流可能也是一个原因,师生间的沟通就会缺乏。也有许多认为MOOC很多教学模式是传统模式的翻版,只是把课堂的东西照搬到网上课堂。如何解决这些问题,可能是MOOC下一阶段发展的关键。随着在线学习的不断发展,中国大学MOOC网被越来越多的人选择,在线课程的不断增加,选课人数也成倍数式增长。虽然学生的不断增长,但是课程的淘汰率,弃学率,教学质量仍然是一个大问题。本课题使用了Python语言编写网络爬虫来爬取中国大学MOOC网站上的数据,方便研究中国大学MOOC的发展以及我国在线课程的未来发展提供有利的参考。
1.2 国内外现状
1.2.1 爬虫技术发展历史
爬虫技术是搜索引擎系统的基础,爬虫技术能够自动爬取并解析网页与网页信息。自上世纪90年代,爬虫技术就已经开始兴起了。目前爬虫技术已经非常成熟,大量的商业搜索引擎的核心技术内容就是网络爬虫。近几年来,由于python语言的兴起以及python的简便性,python成为了爬虫开发使用最为广泛的语言。python开发社区有非常丰富的开源库,使得python成为了爬虫开发的主流。
1.2.2 爬虫现状与设计者需要面临的问题
爬虫技术发展经历了许多个年头,已经有许多优秀的开源库可以供爬虫开发者进行使用,但如今最大的难题不再是爬虫的开发进程,而是在网络资源如此多的时代,网页的内容更新速度十分之快,所以,爬虫能否又能够即时的检测到数据的更新并采取措施就成为了评判爬虫系统优秀的指标。
另一方面就是知识产权的问题,网页上的信息理论上也属于知识产权的范围,应当受知识产权的保护。所以大部分网站并不希望自己的信息被爬虫程序所爬取,开发人员会采取拦截网络爬虫的措施。
1.2 本课题的意义
随着信息时代的来临,在线学习的迅猛发展,在线学习方便快捷,大规模,开放性的特点,越来越多的人选择在线学习。其中的佼佼者中国大学MOOC也很受许多学生喜爱,随着更多课程的加人,各门各类课程多而繁杂,为了方便学生的选择,本课题基于Python语言编写的网络爬虫,对中国大学MOOC进行数据抓取,得出大量的数据再对中国大学MOOC上的各类数据进行整合分类,最后存进MySQL数据库。使用PyQt完成图形界面实现数据的可视化。可以直接在课程窗口查询课程信息,用户可以直接查看热门前十课程排行,方便用户了解每天的热门课程。其他课程信息也可以在可视化图形界面查看。
随着Web开发的发展,AJAX技术得到了更广泛的使用。为了能够使页面具有较好的交互性以及使用少一点的网络资源来改变页面,几乎所有的网站都在使用AJAX技术,极大的促进了web的发展。但对于爬虫技术来说,AJAX似乎并不太友好,AJAX会是web页面的DOM结构发生改变,所以初次抓取的页面文档里可能不包含所需的信息,如何在动态页面里爬取数据是一个难点,对于这种问题,最传统的方式就是分析页面的javascript资源内容,手动解析网页的请求加载过程,这种方式十分繁琐,有时网站还会对请求进行混淆,增大分析难度。另外一种方式就是采用浏览器自动化控制的方式,这样可以等待浏览器加载页面完成,当页面加载完成时再进行解析,这样就降低了动态页面的数据爬取难度。
2 相关技术
2.1 网络爬虫技术发展现状
网络爬虫在信息搜索和数据挖掘过程中扮演着重要的角色,对爬虫的研究开始于二十世纪九十年代,目前,爬虫技术已趋于成熟。网络爬虫通过自动提取网页的方式完成下载网页的工作,实现大规模数据的下载,省去诸多人工繁琐的工作。在国内,爬虫技术发展的相关的研究起步比较晚,但发展较为迅速。2003年开始,国内信息挖掘的学术会议普遍开展起来,在网络爬虫领域中的研究也越来越广泛。 2007年,浙江大学罗冰为传统的网络爬虫添加了解析模块和支持模块,完成了对加载内容的分析。北大天网是爬虫技术领域的领导者,在性能方面具有很大的优势,用当前的分布式代替以前的集中式,并且可以搜索10亿数量级的网页。 以Bagging 算法和PageRank 算法为主题的爬虫,一种由周明全、张翔等人于2010年提出的主题爬虫,并且他们还改进了 PageRank 算法。以及罗海波等人也实现了基Hits 算法和SharkSearch 算法的爬虫。近年来,通过各位学者们不断探索分析和不懈努力,动态网页信息抓取已经逐步实现,爬虫工具的性能也逐步提高。减轻了人工下载的负荷,实现高效快速下载工作,成为查询、分析整合数据不可缺少的工具。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/910.html