学号:2015040121033
密级:
本科生毕业论文(设计)
基于 Python 的实时考研调剂信息挖掘实现
院(系)名称: 计算机科学学院
专 业 名 称 :
软件工程
学 生 姓 名 :
指 导 教 师 :
xxx
xxx
二〇一九年五月十一日
BACHELOR'S DEGREE THESIS OF
WUHAN DONGHU UNIVERSITY
Realization of Information Mining
Based on Python Real-Time
Examination and Adjustment
Candidate:Li Tianci
Supervisor:Tan Lingli
May,11st, 2019
郑重声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研
究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文
不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研
究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完
全意识到本声明的法律后果由本人承担。
论文作者签名:
日期: 2019 年 月 日
基于 Python 的实时考研调剂信息挖掘实现
摘 要
Web 网页数据挖掘技术在上个世纪 80 年代早就已经有了初步的研究,随着
互联网的迅速开展和大规模数据时代的开展,从“冰山一角”的大量数据中寻找
潜在有用的价值信息,数据挖掘技术起到了不可忽视的作用,并成为当下最抢手
的钻研热点之一。近年来,该技术快速进步,在工程、医学与科学等多种行业都
取得了巨大的成果,其研究价值也随之增高。
随之传统的 Web 爬虫技术也称为网页机器人或者网页蜘蛛,它是一个对网页
数据进行批量的下载的程序。面向传统的 Web 页面的网络爬虫通常采用的方式是
对网页中的超链接关系的对外进行扩展,从而获取整个互联网中页面的信息。基
于 python 的 Web 爬虫需要对网站中的各个节点之间的进行研究,以便获得整个网
站的节点关系图。在网络爬虫开发中,Python 是最为普遍运用的设计言语。Python
在爬虫设计中具备特殊的优势,其丰厚的开源库和优异的代码封装使得 Python
爬虫逐步成为了潮流。
本次毕业设计就是在这个背景下进行的,主要采用了 python 语言设计程序,
其丰富的库函数能够找出网页的 xml 结构,并运用正则表达式对数据进行筛选。
最后将数据存入 mysql 数据库展开保存,方便后续的操作。本文旨在方便考研调
剂挖掘,为考研学子以后咨询信息提供了一条更加便捷和可行的方法。
关键词:数据挖掘;考研;python;爬虫
I
Realization of Information Mining Based on
Python Real-Time Examination and
Adjustment
ABSTRACT
Web page data mining technology has already had preliminary research in the early
1980s. With the rapid development of the Internet and the development of large-scale
data era, it is looking for potentially useful value information from the large amount of
data in the "Iceberg". Data mining technology has played a role that cannot be ignored,
and has become one of the most sought-after research hotspots. In recent years, the
technology has made rapid progress and has achieved great results in various industries
such as engineering, medicine and science, and its research value has also increased.
The traditional web crawler technology, also known as web spiders or web spiders,
is a program that downloads web pages in bulk. The web crawler for traditional web
pages is usually extended by externally expanding the hyperlink relationship in the
web page to obtain information about the pages in the entire Internet. A python-based
web crawler needs to study between the various nodes in the website in order to obtain
a node relationship diagram for the entire website. In web crawler development,
Python is the most commonly used design language. Python has a special advantage in
crawler design, its rich open source library and excellent code encapsulation make
Python crawlers a trend.
This graduation design is carried out in this context, mainly using the Python
language design program, its rich library function can find the xml structure of the web
page, and use regular expressions to filter the data.Finally, the data is stored in the
mysql database and saved for subsequent operations. This paper aims to facilitate the
excavation of the examination and adjustment, and provides a more convenient and
feasible method for consulting information after the postgraduate students.
Key words: Data mining;postgraduate;python;Crawler
II
目 录
1 绪 论......................................................................................................1
1.1 课题的来源、意义和目标......................................................................................1
1.1.1 课题的来源...........................................................................................................1
1.1.2 课题的意义...........................................................................................................1
1.1.3 课题的目标...........................................................................................................1
1.2 文章组织结构..........................................................................................................2
2 Python 数据挖掘技术概述................................................................... 3
2.1 Python 爬虫框架—Scrapy 框架............................................................................. 3
2.1.1 网络爬虫介绍.......................................................................................................3
2.1.2 Scrapy 框架介绍.................................................................................................. 3
2.1.3 Scrapy 执行流程.................................................................................................. 4
2.2 数据预解决相关技术介绍......................................................................................5
2.2.1 数据清理...............................................................................................................5
2.3 爬虫解决过程中使用的函数库..............................................................................6
2.3.1
pymysql 库介绍....................................................................................................6
2.3.2
requests 库介绍.................................................................................................... 6
2.3.3 BeautifulSoup 库介绍.......................................................................................... 7
2.3.4
pandas 库介绍...................................................................................................... 7
2.4 小结..........................................................................................................................7
3 系统需求分析和设计............................................................................. 8
3.1 考研调剂信息获取存在的问题..............................................................................8
3.2 考研调剂信息获取的目标......................................................................................9
3.3 可行性分析..............................................................................................................9
3.3.1 技术可行性...........................................................................................................9
3.3.2 操作可行性...........................................................................................................9
3.4 考研调剂信息获取..................................................................................................9
3.4.1 实现步骤...............................................................................................................9
3.4.2 开发语言.............................................................................................................11
3.5 考研调剂信息存储设计........................................................................................11
III
3.6 小结........................................................................................................................12
4 系统的实现............................................................................................13
4.1 爬取对象简介........................................................................................................13
4.2 系统总体结构........................................................................................................13
4.3 各模块实现细节....................................................................................................14
4.3.1 预爬取模块.........................................................................................................14
4.3.2 页面数据爬取模块.............................................................................................15
4.3.3 数据存储模块.....................................................................................................17
4.3.4 信息检索模块.....................................................................................................20
4.4 小结........................................................................................................................22
5 系统测试................................................................................................23
5.1 测试环境................................................................................................................23
5.2 运行测试................................................................................................................23
5.2.1
url 链接访问测试............................................................................................... 24
5.2.2 数据收集测试.....................................................................................................25
5.3 总结........................................................................................................................26
6 结 论....................................................................................................27
6.1 设计评价................................................................................................................27
6.2 改进要求及目标....................................................................................................27
参考文献......................................................................................................28
致 谢..........................................................................................................30
IV
武汉东湖学院本科生毕业论文(设计)
1 绪 论
1.1 课题的来源、意义和目标
1.1.1 课题的来源
全国加入考研大军的人数逐年升高,越来越多的人觉得考研难。第一、报名
人数增长速率已远远超过了实际录取名额增长速率,从 2009 年报名人数 124.6 万,
报名录取比列 2.9:1,到 2019 年报名人数已上升为 285 万,报名录取比列为 4:1。
第二、国家统考和高校自主命题难度也越来越大。随着信息技术的发展,考研“参
赛者”谁在最短时间内掌握的信息最全面,谁就能在考研之路上先人一步。
我们应尽早寻找调剂信息,同时合理地分析自身情况,分数和相关信息来选
择能够得着的调剂院校和专业。对于这些考研复试中的重要信息,各种大大小小
的网页和网站均公布相关调剂细则信息,由于时间不够,节奏紧凑,考生常常没
有慎重考虑,最终可能导致考研失败。因此,掌握足够的考研信息才是王道。若
调剂信息过多而杂乱,很可能会造成研究生生涯的困扰。
此次毕业设计论文之所以选择该主题,主要是由于考研本来就是一件非常辛
苦但又非常有意义的事情,大家都想为之一搏。此外,也希望能够在本次设计中
积累经验,能为今后编写更完善的程序奠定基干。
1.1.2 课题的意义
由于大多数人在初试准备上花费了大量精力和财力,对于复试没有足够的掌
握常常会选择调剂复试。这类考生应该尽早的掌握重要的复试信息,按照本人的
状况和已有的复试信息抉择可调剂院校及专业。调剂和复试一般是同步进行的,
学校官网都会发布特定调剂的信息,但学生常常没有时间去慎重选择,最终可能
导致考研失败。因此,通过网络信息爬虫技术进行考研调剂信息爬去,具有非常
现实的意义。
1.1.3 课题的目标
本论文将会针对小木虫论坛,结合 python 爬虫技术对小木虫论坛—调剂信息
库数据进行挖掘。本论文具体的工作如下:
(1)数据采集和储存:爬取的数据必须是实时的,若是历年的信息则没有什
么价值。然后采取特定的格式存入数据库。
(2)网页的爬取:需要涉及 IP 池等信息以模仿用户浏览,并适当降低爬虫
1