标题 | 基于Python语言的招聘信息可视化分析 |
范文 | 杨众 摘要:随着近些年来Python语言在各个行业广泛应用,各大公司对Python技术人员的招聘数量日益增多。利用Python语言的Scrapy框架技术从国内招聘网站上采集了15 000条招聘数据,对数据进行了处理和存储,将招聘信息中的行业情况、经验要求、工资情况、学历要求、公司规模和招聘地区等进行了展现和分析。对Python语言框架技术、实现方式方法和必要代码进行详细讲解,对目前国内招聘岗位的需求特点进行了大数据分析,为正在学习Python技术或有意向从事该行业的技术人员提供了参考和借鉴。 关键词:Pyhton;Scrapy;网络爬虫;可视化;数据分析 中图分类号:TP393文献标志码:A文章编号:1008-1739(2020)02-61-4 0引言 根据IEEE2019年对编程语言的排名,Python语言高居榜首,并且连续3年夺冠,已经超越Java和C语言,被称为当今最流行的编程语言。目前,国内对Python人才的缺口已经高达50万,使得相关职位的薪资和待遇逐年攀升,部分高精尖职位如人工智能和大数据开发等人才更是稀缺,不少公司开出30万元的年薪都招不到人。IT领域人才招聘的渠道主要集中在互联网招聘和熟人推荐,文章利用Python语言的爬虫、数据存储、处理和展现分析技术对当前主流的招聘网站进行分析,从数据层面反映了当前IT领域对Python技术人员的需求情况。 1相关技术 1.1 Python语言背景 Python语言是一种开放源代码、免费的跨平台高级语言,由Guido van Rossum于1989年发明。Python语言被称为“胶水语言”,它可以非常容易地把Java和C++等主流语言粘在一起,实现程序之间的联动。此外,Python语言还具有入门快、简单高效、运行可靠、可扩展和数据处理能力强等特点[1 ]。Python语言拥有大量的第三方开源库,使其在互联网、数据分析、云计算、网络爬虫、自动化运维、Web开发和人工智能领域得到了广泛的支持和应用。 1.2 Scrapy爬虫框架 网络爬虫是Python应用中的一个分支,又称为全网爬虫,爬行对象可以从一些种子扩充到整个Web,主要为门户站点、搜索引擎和大型的Web服务商提供采集数据[2]。Scrapy框架是Python中最著名、最受欢迎的爬虫框架,完全通过Python语言进行编写,基于Twisted的异步处理框架,架构清晰、成熟,模块之间的耦合度低、可扩展性强,可以应用在数据挖掘、信息处理和存储历史数据等一系列的程序中。 1.3 Echars可视化库 Echarts是由百度公司开发的一款基于JavaScript技术来实现的开源Web可视化库,称为商业级数据图表。Echars底层依赖轻量级的canvas类库ZRender,提供直观、友好、可交互和高度个性化定制的数据可视化图表,如折线图、柱状图、散点图、饼图、K线图、雷达图和位置坐标图等上百个图表。 Echars的架构分为ZRender层和Echars層两部分,其中ZRender层对图形动画、渲染引擎和一些基本的用户交互方法进行了封装;Echars层包含了具体的调用接口、视图和一些交互组件。目前,Echars已经成为国内互联网行业最热门的可视化工具,被百度、阿里、腾讯、华为和京东等公司所使用。 2数据获取 本文数据主要通过某大型互联网招聘网站进行爬取,整个过程通过Python语言进行编写。在数据爬取过程中,采用了模拟请求登录、动态网页抓取代理IP和多线程等技术手段。数据爬取后进行采集分析,对数据进行了清洗和转换处理,并存储到MySql数据库,最后通过Echars可视化库对数据进行展现和分析。 2.1框架搭建 通过比较流行的Scrapy爬虫框架进行编程获取,对网站中的岗位名称、工作年限、学历、岗位性质、公司性质、公司规模、公司全称、业务方向、所在城市、福利待遇、工资标准和发布日期等12条信息进行抓取。 2.2数据定义 2.4数据处理与存储 本设计采用MongoDB数据库作为数据源存储,MongoDB作为非关系型数据库,基于Key-Value形式保存数据,这点与Python字典非常相似[3]。该语言可轻松横向拓展、分片和集群,能够轻松应对爬虫字段变化等情况,非常适合存储大规模爬虫数据。 在Python中使用MongoDB,需要安装驱动,并且导入驱动包。创建并进行访问数据库,数据库创建代码为Client = MongoClient(‘localhost,27017)[4]。数据库创建后需要实现对数据的处理方法,程序pipelines.py实现了Item pipelines项目管道的具体实现,包括编写数据清理、去重等方法,以及实现数据存储。根据对招聘网站的解析,在工作年限字段,有部分内容为“不限”或“迎接毕业生”,为了便于统计和分析,将这2类信息的工作年限设置为0[5]。有部分含有“实习”的工作岗位,由于本分析仅限于全职岗位,故将实习岗位删除。最后,将处理好的数据存入MongoDB数据库,并且在settings.py中定义好数据库的链接信息,在pipelines.py中实现MongoPipeline方法,部分代码如下: 3.2行业情况分析 通过对15 000条招聘数据进行可视化实现,对行业及职位数量进行分析,找出了Python招聘岗位应用前6名行业,它们的排名和数量分别为移动互联网招聘数据有4 893条信息、数据服务有2 981条、金融行业有2 211条、电商行业有2 107条、信息安全有1 423条、游戏行业有1 001条、其他行业有376条信息。可以看出,随着采用Python技术的互联网网站及应用越来越多,对Python工程师的需求也最大。 3.3工作经验要求 在Echars程序的series部分,通过设置markPoint{data:[最大值,最小值]}可以设置数值曲线的最大值和最小值[6]。从工作经验要求曲线中可以看出1/3的岗位均要求3~5年的工作经验,共有5 700条招聘信息,应届毕业生和超过10年工作经验的人需求最少,仅剩600条招聘信息。 3.4工资情况 在Echars程序中markLine属性设置data: {type: average, name: 平均值}可以计算出曲线平均值[6],如图2所示。从工资曲线中,可以看到,Python岗位的平均工资为每月19 134元,其中招聘的应届毕业生的工资最低,平均仅为8 030元,招聘3~10年以上工作经验工资最高,达到27 380元。 从曲线趋势中可以发现,经验在3~5年左右的程序员工资会有一个较大提升,超过行业内平均工资,结合上面工作经验曲线可以发现,这些技术人员的需求量也最大,所以相应的工资给的也比较多。经验在5~10年内工资将会达到一个比较高的水平,但是招聘需求量有所递减。经验要求超过10年的变化不大甚至还有些回落的趋势,分析10年以上的程序员虽然经验丰富,但是年龄也偏大,工资变动不大。 3.5学历要求 通过学历要求饼状图可以发现大部分Python岗位对学历要求不高,岗位需求普遍集中在本科生和专科生,本科生共有7 512条,占50%;专科生共有5 249条,占35%;硕士研究生有1 510条,占10%;博士生有148条,仅占1%;不限学历的招聘信息有613条,占4%。 3.6公司規模情况 通过对公司上市情况和公司人员规模情况进行分析,发现Python岗位招聘的公司规模大部分以中小型企业为主。没有经历过融资的公司为1 493家占47%,上市公司为655家占19%。在公司规模上,以150人以下的小公司居多为1 495家占44%,2 000人以上的大型公司为701家占20%。 3.7地区城市 在参数geoCoordMap中定义城市坐标位置,并且通过Convert Data将坐标数据值进行拼接,最后通过setOption函数对地图进行展现,形成坐标地图。通过对岗位地图坐标图进行分析,Python岗位数量城市分布由多到少分别为:北京、广州、深圳、上海、成都、杭州、西安、南京、武汉和苏州等10个城市。可以发现,Python语言技术需求比较大的几个城市仍然是互联网比较发达的北上广深等一线城市,Python技术从业者在一线城市有比较大的发展。 4结束语 本文利用比较流行的Python语言Scrapy框架对互联网数据进行采集和分析,并通过Echars可视化图表将分析出来的数据进行多元展现,采用的方法为在互联网下的大数据分析和决策支持提供了思路。通过对互联网Python岗位的招聘信息进行分析可以发现,在一线城市中从事互联网行业、具备3~5年工作经验的本科生最为抢手,工资待遇也比较不错,为IT行业的求职者提供了方向。 参考文献 [1]王芳.基于Python的招聘网站信息爬取与数据分析[J].信息技术与网络安全,2019,38(8):42-46. [2]李文龙.基于Docker集群的分布式爬虫研究与设计[D].杭州:浙江理工大学,2017. [3]贾柠瑜.基于python爬虫的岗位数据分析———以拉勾网为例[J].信息技术与信息化,2019(4):64-66. [4]李璋.基于Hadoop的互联网数据营销系统的设计与实现[D].北京:中国科学院大学,2017. [5]林长谋,黄玮.基于Python的就业岗位数据获取与预处理[J].电脑知识与技术,2019,15(12):6-7. [6]赵海国.Ajax技术支持下的ECharts动态数据实时刷新技术的实现[J].电子技术,2018,47(3):25-27. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。