博主介绍:从事互联网行业多年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实实在在的写点程序。
🍅文末点击卡片获取联系🍅
技术:python+vue+djiango+大数据
第1章 课题概述
由于近些年互联网的飞速发展,我们所生活的世界正在被数据所淹没,人们面对大量的数据需要从大量数据中快速地提取有效的自己需要的信息。对于求职者来说当查看招聘信息时也是这样,面对招聘网站展示的大量的职位信息,应聘者难以及时选出自己最想要的职位信息,又或者筛选出信息后不能直观地看到招聘所有信息的特征、规律、变化的趋势或者数据之间潜在联系。我们可以借助计算机技术来进行自动获取筛选分析自己想要的职位信息。本文对于基于Python的招聘网站的爬虫及可视化的课题研究就显得尤为重要了。
1.1 课题内容
该课题研究的是一种基于Python的招聘网站的爬虫及可视化的系统。在开发过程中利用Python对招聘信息进行收集和分析。首先,在拉钩网站上爬取招聘信息,然后存入数据库,连接数据库将数据库中的招聘信息从地区、行业、专业、公司规模、要求经验、薪资待遇等维度进行数据分析。最后,利用ECharts可视化技术,将有效的数据展示给用户。
1.2 课题背景
近年来随着我国计算机水平的发展,计算机行业的热门,高校也都相继开设了相关课程,越来越多的计算机人才涌入社会,但市场中的一众岗位让人眼花缭乱,同时众多拥有丰富从业经验的从业者,名牌大学与普通院校毕业生共同竞争,致使很多社会中的求职者面临着就业的困扰,而如今的招聘网站信息多,想要获取有效的信息需要的时间太长。为了解决社会二次择业人员和高校应届毕业生获取符合自己的并符合自己意向的招聘岗位信息,利用Python对这些招聘信息进行收集和分析势在必行。所以需要一种能够具有分析岗位优势,薪资分布等的系统,可供求职者利用自身优势,分析岗位信息,从而尽快找到心仪的岗位。
通过综合运用互联网数据爬虫技术和图表可视化库,对招聘网站的招聘信息进行爬取,并进行了相关统计分析,从地区、行业、薪酬、经验、岗位素质等方面进行综合分析。从而帮助计算机行业想从事Java、Python、Php相关岗位的就业人员了解相关领域的岗位需求和薪资情况、企业招聘城市、招聘企业的规模和学历与工作经验要求等。从而为就业人员的快速选择岗位,在何处选择岗位提供参考,对未来的生活和工作、学习规划等明确方向。
1.3 课题意义
对于即将毕业找工作的应届生和社会择业人员来说,上网快速找到合适的工作,无疑是急需的。而如今的招聘网站信息多,面对着网上形形色色的招聘网站和参差不齐的招聘信息,想要获取有效的信息需要的时间太长,这给就业者根据自身的情况选择自己适合的职业带来了困难。针对以上不足,有必要通过爬虫技术,帮助求职者在杂乱无序的数据中寻找有用的数据,科学分析,缩短求职者找工作的时间成本,帮助求职者快速择业。
本系统爬取了拉勾网站的计算机语言相关多种招聘信息,同学们可以通过选择本身应对的学历和想要的招聘岗位来选择查看相应的招聘信息。同时将这些信息可视化,可以方便同学们快速了解公司需求情况,这些可视化的部分包括薪资情况,企业情况,公司福利情况和学历情况。
1.4 运行环境
开发语言:Python+JavaScript+ SQL
后台数据库:MySQL
开发环境运行平台:Windows 7/Windows10
1.5 相关技术
本项目是使用Python语言开发编写。使用request包进行对招聘网站的数据爬取;用Pysql连接数据库,获取数据;使用Flask框架将数据返回给前端,用ECharts对数据进行可视化展示,使用Jieba分词将语句分开。
1.5.1 Python语言
Python是由其他多种语言发展而来的脚本语言。Python具有很强的可读性,比其他语言更容易上手,并跳过了编译的过程,不需要使用编译器。Python语言是交互式的,我们可以直接运行代码。Python支持面向对象的风格或者将代码封装在对象的编程技术,是一种面向对象的语言。Python语言非常适合新手学习,因此作为计算机学生,在步入大学后,专业课程开设的第一门课就是计算机导论——以Python为舟,可见Python对于初级程序员来说是一种伟大的语言。
爬虫一般来说就是进行网络资源抓取,因为Python脚本特性,Python容易配置,对字符处理十分灵活,Python有着丰富网络抓取模板,让两者可以很好的链接在一起。对比其他静态编程语言来说,Python抓取网页文档接口更加简洁。抓住网页有时候需要模拟浏览器的行为,而Python具有很多第三方包。
1.5.2 Django框架
说起 Django,它是一种完全用 Python编写的开放源码 web程序框架。最初,这款产品被研发出来,是为了对劳伦斯出版社的一个网站进行管理,也就是 CMS。并于二○○五年七月以 BSD牌照发行。这个系列的名字来自于比利时吉普赛的一位爵士吉它演奏家,德扬戈·莱因哈特。有了 Django体系结构,编程人员就可以轻松快速地创建高质量的,易于维护的,数据库驱动的应用。Django的设计模式是采用MVT模式。MVT模式职能图如图2-1所示。
表21 MVT模式职责图
层次 | 职责 |
模型(Model),即数据存取层 | 处理与数据相关的所有事务:如何存取、如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。 |
模板(Template),既表现层 | 处理与表现相关的决定:如何在页面或其他类型文档中进行显示。 |
试图(View),即业务逻辑层 | 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。 |
工作机制介绍:
1.当您在 Django服务器上使用 manage. py运行程序开始时,加载下面的 settings. py这个文档里有关于这个工程的所有设定,最主要的设定就是ROOT_URLCONF,这个设定会告知 Django可以使用哪一个 Python模组作为网址的 URLConf。
2. Django在存取 url时执行一个基于ROOT_URLCONF的设定的装入 URLConf。
3.接下来,将 URLConf中的 URL模式依次进行匹配。当发现时,将会呼叫它的相关检视功能,并且将 HttpRequest物件做为第一个引数。
4.这个视图功能是用来返回一个 HttpResponse对象的。Django请求回应的工作机制图如图2-1所示。
图 21 Django请求回应的工作机制图
第2章 系统设计
第3章 系统实现
第4章 功能测试及成果展示
任何一个项目完成之后都必须要对该项目的测试,以检查项目是否有缺陷,设计多个测试用例,检查用户在使用阶段是否会有此类问题。也可以在此过程中做出完善,本章主要是对招聘数据可视化的交互功能是否满足要求进行测试。
4.1 测试内容
招聘数据的可视化主要是招聘信息的展示和交互,所以我们主要测试用户的操作与系统的交互是否正常。所以选择开发人员手工执行测试用例的方式进行。以下是对招聘数据可视化进行的详细说明。招聘数据可视化测试用例,如表4-1所示。
表4-1 招聘数据可视化测试用例
测试名称:招聘数据可视化测试 测试目的:看用户点击相应操作是否正确显示可视化数据,柱状图与折线图是否能正常切换,数据概览输入相关信息是否能显示相关数据。 前置测试:成功连接数据库,并可视化展示招聘信息。 主要参与者:用户 | |||
功能模块 | 测试目的 | 测试步骤 | 预期结果 |
数据概览 | 输入学历和相关职位关键词能否显示正确信息 | 输入学历与关键词查询 | 出现了相关信息,没有其他信息 |
薪资情况 | 柱状图与折线图是否能动态切换 | 点击切换折线图 | 折线图出现 |
企业情况 | 点击其他未显示的城市是否能出现城市招聘岗位数信息 | 点击其中某一城市 | 饼图中添加了该城市信息 |
福利情况 | 鼠标触碰到某一高频词是否能显示该词出现的次数 | 鼠标触碰该词 | 出现该词的出现次数 |
学历情况 | 鼠标触碰某一学历的柱状图,是否能出现招聘人数 | 鼠标触碰该柱状图 | 显示招聘人数 |
4.2 测试结果
本项目的所有功能经过测试后已经完全满足要求。本项目满足了招聘数据列表的展示,薪资待遇的分布展示,公司分布情况的饼状图展示,公司规模大小的柱状图和折线图的展示分布,公司福利情况和职位福利的词云展示,对学历和工作经验要求的条状图和矩形树图的展示。
4.3本章小结
本章通过使用测试案例数据对招聘数据的可视化分析进行测试,测试过程中发现了一些问题,比如饼状图没有设计只显示七个城市导致饼状图不好看。本次完善了功能,最后完成测试,但我们还需要加深学习,让项目变得更加实用。