一、选题意义 随着我国高等教育不断发展,现在我国学生本科就读率不断增高,社会上本科生人才数量也在不断增多。由于我国人口众多,从恢复高考到现在,全国本科学历占比不超过5%,但总数也达到了六千万人左右。 本科生不断增多,也造成了就业竞争加大,于是选择继续深造考研的大学生不断增多,2022年我国考研人数已达457万人,几乎快到高考人数的一半了。 通过对考研动机的调查分析,超过半数考生读研目的是为了提升自身的知识水平和能力,以及由于就业压力大,提高就业竞争力;认为毕业学校不好,想提升学校层次为另外一个重要因素。 2022年硕士研究生报名人数创下最高纪录,达到457万,涨幅达21%。这是最近5年连续在高位上超过两位数的高增长。从近年数据来看,2020年考研报名人数比2019年增加了51万人,2021年比2020年增加了36万人。自2016年起,我国硕士研究生报考人数在高位上保持高增长趋势。2015-2022年,7年平均增长15.8%。 在如今这个考研越来越火热的时代背景下,越来越多的大学生投入到考研的事业中来,通过考研来提升自己的专业素养,或考入更高学府,而考研院校的选择既要符合自己的期望,又要立足自身实际,甚至因为一年比一年多的考研学子,考研的难度也随之上升。 而随着考研人数的不断增多,考生对考研信息的需求程度也愈发增大,近年来各个学校相关专业的学生在参考研究生时,对于报考相应学校的相应专业的信息充满需求,同时本校相关专业近年来的考研率,考研专业课的选泽信息也是学生了解的对象。 许多学生了解信息的来源良莠不齐,传统的上门咨询,学长学姐提供帮助,导师提供信息,现场考研咨询,官方网站查询,学校贴吧的查询等,互联网的出现和普及,互联网已经成为现代人类获取信息的一个重要途径。 所以考研院校的选择成为了一个必不可少的研究课题,这关乎国家的发展大计,也关乎学生们的前途命运。当越来越多的学生在考研中竞争时,如何选择一个既符合自己期望又符合自己水平的学校成为了一个难题。 基于这些,本课题致力于研究国内各大高校的各专业招生人数,历年复试线,报录比以及专业课参考书信息等。 “基于scrapy的考研院校报名数据分析系统”的意义,意在通过scrapy架构爬取数据,同时提升数据获取效率,多维分析获取的数据,更加准确地分析各个高校分数线上涨或下降趋势,各专业在各高校分数线对比,已经各专业涉及参考书难度排名,便于用户对所需数据进行查看,系统统计考研数据,根据用户期望院校,期望专业,以及本科学业实力,合理地分析以及推荐相应的高校及专业。
二、国内外研究现状概述 随着互联网的出现和普及,web已经成为现代人类获取信息的一个重要途径。我们也逐渐从信息匮乏的时代进入到信息超载的时代,由于web信息的日益增长,人们不得不花费大量的时间去寻找自己想要的信息。 近年来各个学校相关专业的学生在参考研究生时,对于报考相应学校的相应专业的信息充满需求,同时本校相关专业近年来的考研率,考研专业课的选泽信息也是学生了解的对象。 许多学生了解信息的来源良莠不齐,有传统的上门咨询,学长学姐提供帮助,导师提供信息,现场考研咨询,官方网站查询,学校贴吧的查询等,对于考研信息的获取这就需要有一个具有良好用户体验的系统,会将海量信息进行筛选、过滤,将用户最关注最感兴趣的信息展现在用户面前[1]。在此背景下,推荐系统出现了,推荐系统的任务就是解决上述的问题,联系考生和信息,一方面帮助考生发现对自己有价值的信息,另一方面让信息能够展现在对他感兴趣的人群中,从而实现信息提供商与考生的双赢。 推荐算法在很大程度上决定了推荐系统类型和性能的优劣。一个成功个性化推荐系统,往往选择了合适的推荐算法作为系统核心。除此之外,能否处理好新用户的冷启动问题和数据过多导致的稀疏问题,也是推荐系统面临的一大挑战。因此,开发人员在选择一种推荐算法之前,必须综合考虑实际应用场景、各推荐算法的特征与性能等要素。 爬虫,又名“网络蜘蛛”,是通过网页的链接地址来寻找网页。从网站某一个页面开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到按照某种策略把互联网上所有的网页都抓取完为止的技术。而Scrapy是一个爬取网站数据、提取结构性数据而编写的应用框架。Scrapy应用Twisted异步网络库来处理网络通讯,使得在处理数据时显得特别灵活,其包含了各种中间件接口,如:下载器中间件、调度中间件等。由于Scrapy的易用性和灵活性,使得越来越多的开发者来使用Scrapy框架获取数据。在国内一篇名为《基于Scrapy框架的网络爬虫实现和数据抓取分析》论文中,以新浪微博为例进行数据采集,深刻分析了爬虫的原理以及涉及的技术点。 在国外,由于Scrapy框架被国外开源爱好者维护,因此使用较为广泛。在该课题类似的研究上,一篇名为《Scrapy-Based Crawling and User-Behavior Characteristics Analysis OnTaobao》论文阐述了数据的获取和数据的分析,分析了如何从网页上获取相应的数据、如何对数据进行处理等问题的解决方案,在数据分析上,对已有数据进行分析(如:分析淘宝卖家和买家的关系等)的方式使用了相关的数学推理和证明,使得论文更加严谨。这些,无疑对本课题的研究起到了积极作用。 三、主要研究内容 基于Scrapy的考研院校报名数据分析系统的设计目标是实现一个功能完好、操作简单、界面简洁的考研院校报名数据分析系统。基于Scrapy的考研院校报名数据分析系统采用Python语言,设计开发更为快速高效,系统的维护成本也很低。 系统主要围绕考研各高校、各个专业分数线,以及各专业报名程度展开,主要功能是管理员通过后台可以发布、上线的各个学校的相关专业考研数据,平台上的用户可以根据自己的情况浏览所需的考研数据,用户还可以通过填写自己的相关报考专业,自己的本科院校,自己的期望高校等数据,后台通过数据进行合理分析,给出符合用户期望,同时贴合用户实际的考研院校及相关专业。 用户可以通过该平台了解到考研相关的信息,用户也可以在网上留言,提出自己的意见或问题,以及与其他用户共同讨论考研相关的问题,建立有效的用户与后台正反馈模式,以及用户与用户相关联模式,创建一个适合考研学子获取相关消息以及讨论考研话题的网站。 关于获取考研信息,用户可以通过该平台自己所需要的相关学校的相关专业的近几年考研相关数据如分数线,录取人数,调剂人数等,也可以选择多个院校的相同专业做相关数据比较。 系统功能模块: 前端: 用户注册功能 用户登录功能 用户更改密码功能 用户退出功能 查询院校专业相关数据功能 用户留言功能 考研相关新闻展示功能 后端: 考研信息爬取功能 考研信息录入功能 数据库基本操作功能 用户管理功能
四、拟采用的研究思路(方法、技术路线、可行性论证等) 1、方法:
- 分析用户需求:分析考研学子关心的考研相关数据。
- 数据爬取:访问各大高校官网,获取学校每年招收研究生的考研专业以及相关数据,如参考书,拟招人数,对考生要求,发布调剂人数,各专业复试分数线,拟录取考生成绩等等。
- 数据处理:在mysql中创建数据库,将获取的考研相关数据存进数据库中,并作相应的统计工作。
- 数据展示:通过Scrapy框架展示数据,将后台统计处理好的数据交给前端,制作出相应的结果页面来展示考研相关数据。 2、技术路线: 1)Scrapy: Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。 Scrapy主要包括了以下组件:引擎(Scrapy Engine)、 项目(Item)、调度器(Scheduler)、下载器(Downloader)、爬虫(Spiders)、项目管道(Pipeline)、下载器中间件(Downloader Middlewares)、爬虫中间件(Spider Middlewares)、调度中间件(Scheduler Middewares)。 2)MySQL: MySQL是一个小型的开源的关系型数据库管理系统,与其他大型数据库管理系统例如Oracle、DB2、SQL Server等相比,MySQL规模小,功能有限,但是它体积小、速度快、成本低,且它提供的功能对稍微复杂的应用已经够用,这些特性使得MySQL成为世界上最受欢迎的开放源代码数据库。 MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 3)Python: Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,其具有易于学习,易于阅读,易于维护,可扩展,可移植,可嵌入等特点。 3、可行性论证: 1)技术可行性:本人大学期间学习过程序设计,懂得使用Python语言进行程序开发,数据库善于使用MySQL,并且有导师指导。 2)操作可行性:该系统界面设计清晰明了,有良好的视图效果,能够引导用户快速了解系统,操作简单易上手。 3)经济可行性:该系统是本人的毕业设计作品,所需硬件为一台笔记本电脑,无需进行额外购买,所需开发软件可以在官网下载使用,因此开发成本较低,该系统的开发在经济上具有可行性。