基于Python的招聘职位数据采集与数据可视化分析

摘要

随着互联网技术的发展,网络招聘成为招聘者与求职者的主要选择,许多大型招聘网站也随之出现,越来越多的毕业生和求职者造成了社会就业压力巨大的现状。因此设计并实现招聘职位数据采集与数据可视化分析系统有重要的研究价值和意义。该系统的实施使得目前的招聘岗位的具体状况更为明确,有助于各大学根据当前的形势来确定其培养的专业和教学方向,同时也有助于大部分的公司了解当前的社会对人力资源的需求情况。

系统以Python语言为主要开发语言,通过用户端和管理员两个部分的功能实现了对招聘职位数据的数据采集和数据可视化分析。管理员通过爬虫技术获取前程无忧网和猎聘网的各岗位各地区的招聘职位数据,并通过HTML和Flask框架技术将爬取到的职位相关数据信息通过分析予以Echarts图的方式进行可视化展示(按城市分布、岗位分布、学历要求和词云图统计),以便用户注册登录之后查看。管理员在后台对公告和注册用户的信息进行管理,并对爬取到的数据进行维护和管理,以便数据更好的向用户展示。

关键词

网络招聘;爬虫;可视化展示;Echarts

Abstract

With the development of Internet technology, online recruitment has become the main choice for recruiters and job seekers, and many large recruitment websites have emerged, and more and more graduates and job seekers have caused the current situation of huge employment pressure in society. Therefore it is of great research value and significance to design and implement a job posting data collection and data visualization and analysis system. The implementation of this system will help universities to determine their specialization and teaching direction according to the current situation, and it will also help most companies to understand the current demand for human resources in the society.

The system is mainly developed in python language, and the data collection and data visualization analysis of the job data are realized through the functions of both the user side and the administrator. The administrator acquires the job data from MileagePlus and Hire.com through crawler technology, and visualizes the crawled job-related data information by analyzing them in Echarts (by city distribution, job distribution, education requirements and word cloud statistics) through HTML and Flask framework technology, so that users can view them after registering and logging in. The administrator manages the announcement and registered users' information in the background, and maintains and manages the crawled data for better presentation to users.

Key words

Recruitment; Thecrawler; Visualanalysis; Echarts

目录

摘要

Abstract

第一章 前言

1.1 背景和意义

1.2 国内外研究现状

1.3 相关技术

1.3.1 Python

1.3.2 Flask

1.3.3 ECharts

1.4 论文主要内容

第二章 系统的需求分析

2.1 可行性分析

2.1.1 经济可行性分析

2.1.2 技术可行性分析

2.1.3 运行可行性分析

2.2 功能需求分析

2.2.1 确定业务参与者

2.2.2 用例词汇表

2.2.3 系统用例模型

2.3 各个模块用例描述

2.3.1 注册模块

2.3.2 登录模块

2.3.3 数据爬取模块

2.3.4 数据展示模块

2.3.5 公告管理模块

2.3.6 用户管理模块

2.3.7 数据管理模块

2.4 本章小结

第三章 系统的设计

3.1 系统设计原则

3.1.1 开放性原则

3.1.2 实用性和可维护性原则

3.2 系统功能模块设计

3.3 数据库的设计

3.3.1 概念模型设计

3.3.2 数据表的设计

3.4 本章小结

第四章 系统功能的设计与实现

4.1 数据爬取模块的设计与实现

4.2 数据管理模块的设计与实现

4.2.1 爬取数据管理

4.2.2 日志管理模块

4.3 可视化展示模块的设计与实现

4.4 系统管理模块的设计与实现

4.4.1 公告管理模块

4.4.2 用户管理模块

4.5 本章小结

第五章 系统软件测试

5.1 软件测试目的

5.2 系统测试用例

5.2.1 登录模块测试

5.2.2 用户管理模块测试

5.2.3 数据管理模块测试

5.2.4 公告管理模块测试

5.2.5 日志管理模块测试

5.3 系统的维护

5.4 本章小结

结论

参考文献

致谢

第一章 前言

随着就业需求的不断增加,招聘职位的数据对于就业人员显得格外重要,因为受到疫情的影响,线上招聘成为了招聘方式,所以网络招聘职位数据的重要性更为突出。

1.1 背景和意义

目前,由于互联网信息技术的飞速发展以及各类电子设备的广泛应用,各类电子信息随之而来,人们开始步入了信息时代。在这个信息时代,除了是有等不可再生能源,每个大国都在争抢人力资源,而人才培养也被称之为当今世界上最紧缺的资源,而不同国家和公司也采用了不同手段吸引人才,因此无论国家或者公司,最优秀的人才培养都是其在发展与创造过程中所不可或缺的组成部分。因此,许多企业对人才的需求几乎是偏执的。如何为企业招聘和留住人才已成为每个企业蓬勃发展的首要任务。在从创业到上市的漫长过程中,企业在各个阶段都需要专业人士的支持。因此,网络招聘成为公司发展过程中的非常重要组成部分,对于很多数企业来说,传统的招聘方式已经不能满足现在的人才需求情况的问题[1]。

随着网络时代的冲击和疫情的影响,传统的招聘方式逐渐被时代所淘汰,而络招聘的好处将逐渐显现出来。大多数的个人和公司开始通过网络招聘的平台进行应聘和招聘,所以网络招聘的优势得到了充分体现[2]。如今,网络招聘已经成为现代主流的招聘方式,由此衍生出的招聘网站不计其数,而招聘网站大致可以分为三类:综合类、垂直类、社交类[3]。

1.2 国内外研究现状

目前,在美国等一些国家,通过网络求职的形式已经深入人心,成为毕业生和社会工作者寻找工作的主要途径[4]。微软是著名的跨国科技公司,是信息管理领域的领导者,他们在从事网络招聘时,不仅对外发布招聘信息,还会针对自己的内部员工,当有职位招聘需求时,微软会在网上发布,软的内部和外部员工都可以申请工作[5],它还支持内部员工的国际工作申请,中国的网络招聘多数都在一些一线城市和相对发达的二线城市,部分地区网络求职占比相对较低。与2021年相比,在网上招聘的雇主数量达到526.7万。在线招聘市场的用户总数增加了3.5%,达到近2亿人。预计到2023年,在线招聘的HR的数量即将超过600万,但增长速度相对放缓。

通过iiMediaResearch的数据显示,在2021年1月,前程无忧招聘APP排名第一,活跃用户超过1000万,然后是智联招聘,以月活跃用户约685.1万位居第二[6]。而"斗米"和"BOSS直聘"等新的招聘平台要在快速发展迅速,以月活跃用户超过三百万紧跟其后。猎聘网的每月活跃数量只有154.9万个,相对较低。

中国对数据挖掘的研究比国外要晚一些,研究人员对数据获取的研究主要在某些算法的相关理论基础、应用场景以及算法的改进和优化等方面,国内对数据挖掘的研究大多集中在计算机上,对文本信息,如网上招聘信息的挖掘和分析不多[7]。今天,大数据对社会的发展与个人的选择有着重要作用,所有相关的数据分析方法、可视化技术和数据爬取潜在价值值得我们去发掘。

1.3 相关技术

1.3.1 Python

Python不但是一门高阶的程序设计语言,它同时也是一门解释,编译,交互和面向对象的程序设计的高级脚本,所以Python同时也包括了它的全部功能。该系统是一种较为成熟和可靠的通用程序设计语言。开发Python软件所需的时间较短,且易于确保其正确。所以,这又叫做可运行的虚拟机。密码。Python是一种易学,易读,维护,扩展,嵌入和移植的高级语言。相同的程式可以在不经任何改动的情况下执行。通过这个系统,你也可以在C/C++中安装Python软件。Python不但拥有大量的类库,而且还有许多先进的资料结构,如列表和集合。能够减少开发所需的时间和编码,将更多的精力用于系统的功能性和数据的处理。Python的应用在运行时没有Java和C那么高效,但是在某些高效能的应用中,可以利用Python对C语言进行编程,从而克服了其性能上的缺陷。最关键的是,Python的大量的类库,一个比较完善的架构,一个更加专业和全面的数据处理和数据挖掘的模型。

1.3.2 Flask

Flask是常见的一款使用Python编写的轻型前端应用软件。Flask没有预设资料库或窗体确认工具。Flask在Flask-Extension中增加了很多的扩展灵活性:ORM,表单认证工具,文件上传,各种开放认证技术。Flask框架有着很强的可伸缩性和灵活性;开发效率高,开发者能够集中精力在商业逻辑上;具有三个主要特征:代码量小,能够实现快速开发。

1.3.3 ECharts

ECharts是常用的一种纯粹的JavaScript图表,它主要依靠Canvas类库Zrender。图表丰富,易于操作,通过对属性值的直接应用和修改,可以准确地为前端开发提供相符合的图像以及直观的数据可视化图形,并且可以在PC端和手机上使用,与大多数的浏览器都兼容[8]。另外,ECharts创新的值域漫游、数据视图、拖拽重算等技术,不但提高了使用者的使用体验,而且还为使用者提供了数据挖掘与数据集成的能力。

1.4 论文主要内容

本文主要通过以下五点来进行论文的实现,具体内容如下:

1.对招聘岗位的研究背景、意义和国内外研究现状进行了较为详尽的论述,然后对系统中使用到的相关技术进行了描述。

2.主要从系统的需求分析入手,首先从三个方面对系统进行可行性进行分析,其次对功能需求进行详细阐述,最后对各模块进行用例描述。

3.在需求分析的基础上,对该系统的总体结构、数据库的设计和数据表的设计等进行了详细的描述。

4.在系统设计的基础上,对系统各功能模块进行了设计与实现,并且对每个功能模块的时序图、实现结果和流程图都进行相关说明和展示。

5.主要是对系统进行软件测试,首先阐述了软件测试的目的,其次对主要功能进行了用例测试,最后详细描述了系统维护的关键性。


第二章 系统的需求分析

需求分析的完成情况会严重影响后续开发工作能否顺利进行,本章主要对软件需求和功能需求进行分析,软件需求分析就是通过对系统进行细化分析,这个过程是将软件规划阶段确定的设计范围逐步细化到可以详细定义的程度,最后,对细化的每一个细节进行阐述、分析和总结[6]。

2.1 可行性分析

在进行一个工程或一个制度的发展以前,经常会有一个可行性的研究。工程项目的可行性一般包括:经济性和技术上的可行性。在此基础上,对影响该工程发展的各种可能的因素进行了全面的分析,从而得出该工程的重要性和价值。

2.1.1 经济可行性分析

通常,在进行经济性分析时,需要从两个角度进行。一是在系统的发展阶段是否能够达到所需的资源和装备;二是在系统的研发中需要付出的代价,还有未来可能带来的利益。假如这个工程的费用超过了它的收入,那么这个工程在财务上就没有任何的可操作性。经济性的分析一般采用费用-收益法或费用-收益法,在此利用了前一种方法来进行研究。在推荐体系中,将所需要的资源划分为软体与软体两部分。软件资源是技术文档、参考资料、部分Blog等,可以通过网络进行查询;硬件资源仅需要一部手提笔记本的硬件。这个方法有较高的投资价值和较高的经济性。

2.1.2 技术可行性分析

每一个项目在被公司接收过之前,技术分析是一个非常重要的方面,它影响着该系统是能否被开发出来并正常提供给用户所使用。而在大学四年的学习之中,已经学习了Python、Flask、Html、MySQL等技术,所以只需要通过网站上的学习视频对Echarts图和爬虫技术进行学习就可以完成本系统的设计与实现。在Windows下,Pycharm作为一个系统的开发平台,它的学习费用并不高,因此在技术上是可以实现的。

2.1.3 运行可行性分析

该系统一直秉持着操作要精良、代码要短小精悍,代码越短它就越优美,操作越简单用的人就越多,只要是台正常的电脑,都能把这个软件给运行起来,可以说次软件对系统配置的要求为零,在操作方面没有任何要求,只要会简单的指指点点就能运用自如,不过电脑要连上网线,因为该系统是个联网的软件,操作员只要掌握住工作流程,根据说明书上面的步骤来操作就好了。

2.2 功能需求分析

在信息化的背景下,互联网公司逐步成为一种新型的人才管理模式。目前,在因特网上还有多种不同类型的公司的招聘网站。例如:前程无忧,猎聘,智联招聘等等。因为有这样的求职网站,所以网上充斥着海量的求职信息。在信息技术发展的今天,利用好信息资源,发掘人才的潜力,是必不可少的。在众多的求职平台上,求职者需要掌握各种职业和职业的需要,以便更好地提升自己的求职能力,使自己在当今的职场竞争中,能够更好地生存下去。

2.2.1 确定业务参与者

采用参与者词汇表进行描述,词汇有普通用户和管理员,同义词有前台用户和后台管理员,如表2-1所示。

表2-1 参与者词汇表

序号

词汇

同义词

描述

1

普通用户

前台用户

注册之后,能够查看前台页面

2

管理员

后台管理员

登录之后,能够管理后台页面

2.2.2 用例词汇表

用例词汇表中主要有注册、数据展示、公告、用户管理、数据管理、爬虫管理、日志管理、和公告管理,如表2-2所示。

表2-2 用例词汇表

用例名称

用例描述

参与者

注册

用户在登录之前需要注册

用户

登录

用户使用平台之前需要登录

用户、管理员

数据展示

公告

用户管理

数据管理

爬虫管理

日志管理

公告管理

用户可以看到数据可视化展示

用户能查看管理员发布的公告

管理员能对普通用户进行查询、增加、删除

管理员能对爬取到的数据进行修改

管理员能对前程无忧和猎聘网进行数据获取

管理员能对爬取日志进行查看

管理员能对公告进行修改

用户、管理员

用户

管理员

管理员

管理员

管理员

管理员

2.2.3 系统用例模型

本系统分成两个角色,分别为用户,管理员。用户有注册和浏览的功能,其中浏览有岗位分布信息、地区分布信息、学历要求信息和公告信息,管理员有用户管理,数据管理,日志管理,系统管理等功能,其中有数据库数据、日志信息、用户信息和系统信息。具体系统用例模型图如图2-1所示。

图2-1 系统用例图

2.3 各个模块用例描述

该模块从对注册模块、登录模块、数据爬取模块、数据展示模块、公告管理模块、用户管理模块和数据管理模块七个部分对系统主要模块进行用例分析,充分说明系

猜你喜欢

转载自blog.csdn.net/weixin_46959376/article/details/143323601