信IB与电as
China Computer&Communication
信息化殺有2021年第4期基于大数据的IT人才需求信息爬取方法与实现
金华
(上海浦东软件园股份有限公司,上海201203)
摘要:随着IT技术的快速发展,企业对IT人才提出了更高的要求.为了向广大企业提供更好的培训服务,笔者介绍了基于Python语言的IT人才需求信息爬取和可视化分析系统.该系统基于Scrapy框架,精准地从各大招聘网站上获取大量的人才招聘信息,采用Numpy、Pandas>Matplotlib和分词技术,以大数据可视化的方式形象地从多个维度展示了广大企业对IT人才的需求特征.上海浦东软件园在编制IT培训教材时,参考了该系统的数据分析结果,得到广大企业和培训学生的一致好评。
关键词:IT培训需求;大数据;Python方法
中图分类号:TP393.092文献标识码:A文章编号:1003-9767(2021)04-238-04
Method and Implementation of Crawling IT Talent Demand Information On
the Big Data
JIN Hua
(Shanghai Pudong Software Park Co.,Ltd.,Shanghai201203,China)
Abstract:With the rapid development of IT technology,enterprises have put forward higher requirements for IT talents.In order to provide better training services to the majority of enterprises,the author introduced a Python-based IT talent demand information crawling and visual analysis system.Based on the Scrapy framework,the system accurately obtains a large amount of talent recruitment information from major recruitment websites.It uses Numpy,Pandas,Matplotlib and word segmentation technology to visually show the majority of enterprises*IT talents from multiple dimensions in a visualized way of big data.Demand characteristics. When compiling IT training materials,Shanghai Pudong Software Park referred to the data analysis results of the system,which was well received by the majority of enterprises and training students.
Keywords:IT training needs;big data;Python method
0引言
目前,“切中企业实际需求”已经成为广大IT培训行业的共识,所以如何精准地掌握企业对IT人才的需求,是培训行业迫切需要解决的热点问题。从需求分析角度来看,样本数据越多,分析的结果越精准。对此,笔者介绍的IT人才需求信息爬取和可视化分析系统(以下简称本系统)一方面采用爬虫技术从各大招聘网站收集IT企业对相关人才的原始需求,另一方面从这些复杂的原始需求描述里,用各种挖掘技术提取其中的关键特征信息,存入No SQL数据库以实现持久化,并用图表和词云图等可视化技术展示分析结果本系统给出的分析结果里,不仅包含“行业平均薪资”等定量数据,还包含“高薪所需技能”等关键信息。由于参考了这些基于大数据的分析结果,笔者所在的培训中心在开发项目与编制教材时,一方面详略有序,集中更多的篇幅讲述热门技能,另一方面在讲解热点技能时不留死角,全面地讲述诸如“分布式”和“数据分析”等方面的关键技能。从实践结果来看,依据本系统编写的相关培训教材得到了广大企业和培训学员的一致好评,起到了很好的示范效果。
1系统概述
1.1系统框架
本系统由数据爬取、数据持久化、数据分析和数据展示
作者简介:金华(1967—),男,江苏苏州人,本科,工程师。研究方向:计算机与信息技术。
信IB与电胭
China Computer&Communication信息化赦育2021年第4期
四大模块组成,总体框架如图1所示。
四大模块的功能如下。①数据爬虫模块。采用Python
语言的Scrapy框架,基于XPath的爬虫策略从诸多招聘网
站上爬取招聘信息。②数据持久化模块。该模块采用Scrapy
框架中由items.py定义的数据结构,并由Scrapy框架中的
pipelines.py模块触发,主要用于整合数据爬虫模块获取的
信息。③数据分析模块。从数据库中提取相关的招聘信息,
在完成数据整合后调用数据展示模块中的各种可视化方法表
示数据。④数据展示模块。用于封装基于matplotlib的可视
化模块,在接收数据分析模块传来的数据后能绘出各种数据
图表。
1.2关键技术
1.2.1Scrapy框架
Scrapy是基于Python的数据爬取框架,通过该框架提
供的11s crapy startproject项目名"命令,开发者能创建一个
空白的爬虫模版项目。在此基础上,开发者能通过添加爬虫
相关的代码,实现定义爬取规则、数据爬取和数据持久化存
储等方面的功能。通过u scrapy startproject项目名"命令创
建的空白爬虫模版项目,包含如表1所示的重要文件以及配
置信息。
表1Scrapy空白模版项目里重要文件作用一览表
文件名作用
settings.py items.py pipelines.py Spiders
用于查看爬虫项目的配置信息
可定义爬取目标对象的数据结构
可存储爬到数据的方法,并将数据存入数据库中在此目录里,可定义实现爬虫功能的模块文件
在Spiders目录里,可以通过"scrapy genspider"命令创建爬虫模块。该爬虫模块能把目标网页里的数据转换成items.py里定义的数据结构,并用定义在pipelines.py里的方法,以数据库或文件的形式存储爬取的数据。
1.2.2Numpy、Pandas和Matplotlib库
Numpy、Pandas和Matplotlib是Python数据分析的基本要素,本文使用3个库中定义的方法,分析Scrapy爬取的IT人才需求数据,并以可视化的方式展示分析结果。
ssm框架技术简介(1)Numpy o NumPy(Numerical Python)是面向Python 语言的一个功能程序库,在其中封装了大量科学
计算和数据分析的函数库,尤其在Numpy库里还封装了针对矩阵进行高效计算的方法。在数据分析模块里,会大量使用Numpy 库提供的方法。
(2)Pandas o Pandas是一个基于Numpy的结构化数据分析的工具集,在其中不仅提供了以表格形式存放数据的DataFrame对象,更封装了针对一维、多维和DataFrame表格类数据进行变换和分析的方法。Pandas库能与Matplotlib 库进行宜接整合,从而达到“数据分析”和“数据可视化”无缝衔接的效果。在本系统的数据分析模块里,不仅用到Pandas库的DataFrame对象存储IT人才需求数据,还用到此库中提供的方法,完成了相关数据清洗和数据分析的操作。
(3)Matplotlibo Matplotlib是面向Python语言的一个绘图库,在其中不仅封装了绘制折线图、散点图、柱状图和宜方图等图形的方法,更封装了“定制坐标轴”“设置图例”“设置标题”等的方法。在本系统的数据展示模块里,大量用到Matplotlib库提供的方法,实现了诸多数据可视化的效果。1.2.3分词和词云库
通过数据爬取模块得到的人才需求数据往往是整段的中文描述,在数据分析前需要用到基于Python的jieba库对整段中文语句进行分词,并在此基础上提取人才需求相关的关键字。本系统用到的jieba库是一个比较优秀的中文分词库,在其中不仅封装了高效的分词方法,还封装了常用的中文词库。
在本系统的数据分析场景中,用到了Python里的WordCloud库,能够以“词云”的形式直观地展示与IT人才需求相关的关键词。本系统用到的WordCloud分词库,不仅能支持各种格式的词云效果,还能支持各
种类型的背景效果和字体。
2爬取IT人才需求数据
2.1搭建Scrapy框架,定义爬虫数据结构
在开发数据分析模块时,采用了"scrapy startproject ITRequirementProj"命令,创建了名为ITRequirementProj的爬虫项目,并在其中的items.py模块里,定义了描述IT人才需求的数据结构,如表2所示。
表2侍胆取的IT人才需求关键数据结构
字段名描述
position职位名,比如Java高级开发
skill技能项,比如大数据、分布式、Java等
aspect技能所属的方面,比如测试、Java开发等
years该职位所需要的工作年限
salary该职位能提供的工资
2.2分析页面规则,制定爬取策略
在编写爬虫代码前,首先需要根据目标页面的html代码制定爬取规则,并在此基础上通过xpath的语法爬取目标数据。本文以待爬取的“职位名”为例,给出分析爬取规则的具体做法。打开待爬取数据的目标页面,观察html代码,能发现“职位名”的html层次结构如下所述。第一层:<div class="j_joblist">。第二层:<div class="e">。第三层:<p class="t">o在本层中,取<span>元素里的title值,从中即
信思与电IS
China Computer&Communication
信息化毅育2021年第4期
可得到“职位名”的数据。对此,可以用如下的xpath语句爬取对应的内容,在xpath参数里,是以“/”的方式来描述目标数据的层次结构。
xpath(”div[@class='j」oblist'',]/div[@class=,e,]/p[@ class='t']/text())")
对于其他待爬取的目标数据,也可以用类似的方法分析html层次结构,并通过xpath语句来编写爬取语句。
2.3数据持久化
由于爬取动作和数据分析动作是分离的,所以在本系统的数据持久化模块里,需要通过Scrapy框架的pipelines.py 模块编写“数据存储”的动作,具体步骤如下。第一,引入对应的python数据库支持包。本系统是用MySQL保存数据,所以需要引入pymysql包。第二,在pipelines.py模块的_ init_方法里,创建和MySQL数据库的连接,该方法会在Scrapy爬虫代码被调用时自动触发。第三,在pipelines.py 模块的pro
cess_item方法里,用insert语句插入数据,每当爬取好一条数据,该方法会被Scrapy框架调用,也就是说,通过该方法能逐条插入爬取的IT人才需求信息。第四,在pipelines.py模块的close spider方法里,关闭MySQL数据库名,该方法会在爬虫代码运行结束前被Scrapy框架调用。
2.4运行爬虫代码,爬取所需的数据
在完成编写爬虫代码后,可以通过“scrapy crawl ITRequirementScrapy-nolog命令启动爬虫,其中-nolog表示在运行时不输出日志,如果想要通过日志观察爬虫程序的运行情况,可以去掉该选项。运行后即可在MySQL数据库里看到爬取到的IT人才需求数据。
3数据清洗与可视化分析
3.1数据清洗
由于爬取到的数据来自不同的网站,这些网站展示数据的格式未必相同,所以在分析前需要先把数据保存在Pandas 库的DataFrame里,并按一定的规则清洗数据。比较关键的数据清洗规则如下。第一,把该职位的需求年限和工资统一转换成浮点类型。第二,把以范围形式展示的数据以求平均值的方式,统一转换成浮点类数据,比如某职位所需的工作年限是“3~5年”,在数据清洗时,就以求平均数的方式,把该条数据转换成“4”年。第三,用jieba库对“技能项”进行分词,以提取关键字。第四,去掉关键信息中缺失的数据,比如某条招聘信息里不包含薪资描述,则去掉该条数据,因为此类数据不具备可分析性。
3.2可视化报表展示
在完成数据清洗操作后,本系统将调用数据展示模块里的方法,绘制出各种各样的报表,能从中获取当前对IT人才需求的情况。3.2.1行业平均工资分析表
由于培训中心的培训对象大多是拥有0~3年开发经验的人员,所以根据爬取到的招聘数据筛选出要求0~3年工作经验的职位,并以柱状图的形式展示了薪资最高的4大职位,如图2所示。据此,培训中心会着重开发这些方向的教材,并准备这些方面的培训工作。
图2初级程序员的工资
3.2.2描述Java开发岗关键字的词云
在确定好开发培训重点方向后,还需要根据行业热词确定这个方向的热门技术,以此进一步细化针对该方向的培训内容。以Java开发为例,本系统的数据分析模块针对该方向的招聘条件进行分词,并在此基础上调用数据展示模块的方法,用Python的wordcloud绘制出如图3所示的词云图。培训中心通过这种方式能从大量招聘条件中发现当前企业的热门需求。针对其他热门的IT行业,本系统也用类似方法绘制了相关词云图,能够很好地指导对应课程的开发工作。
Cloud町s ql
数据序分布式
limixnginx
redis
限流
V?若di□<
jvm调优
高可用oracle
集ssmhystrix
spring
redis集
图3描述Java开发岗招聘需求的词云图
4结语
本文不仅分析了IT人才需求信息爬取和可视化分析系统的搭建思路,还给出了抓取数据的指导思想和具体步骤,最后给出了具有代表性的可视化效果图。从效果来看,由于本系统一方面采用面向Scrapy的爬虫技术,广泛地收集诸多原始的IT招聘需求,另一方面采用了面向大数据的Python数据技术,从这些原始的招聘需求里挖掘到本培训中心所需要的目标数据,所以用该系统分析所得到的数据能从培训课程体系设计、培训内容编排和课时设计等维度很好地指导相关的教材开发工作,而且从市场抽样调查结果来看,这些教材
値■与电厢
China Computer&Communication 信息化粼有
2021年第4期
得到了企业和培训学员的广泛好评。所以本系统乃至用本系统分析所得出的IT人才需求信息数据,具有一定的社会价值,具有一定的推广意义。
参考文献
[1]江淼.大数据环境下企业管理模式创新研究[J].经贸实
践,2018(18):283.
[2]严志.高职职业技能大赛云计算平台关键技术研究[J],长
沙民政职业技术学院学报,201&25(1):116-11&
[3]郑文文.大数据时代网络招聘的现状和存在的问题[J].人
力资源管理,2018(5):479.
[4]郑文智,陈晓琛,吕越.国外社交网络招聘研究述评:基于
个体网络大数据的人才甄选[J].华侨大学学报(哲学社会科学版),2017(4):46-59.
[5]胡瑾,张昕.基于“大数据”的网络招聘有效性研究[J].
中国管理信息化,2019,22(8):60-61.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论