admin 管理员组

文章数量: 887021


2024年2月29日发(作者:西安c语言培训)

计算机与网络技术论坛基于Python语言的招聘信息可视化分析杨众辽宁沈阳110000)(中国刑事警察学院,摘要:随着近些年来Python语言在各个行业广泛应用,各大公司对Python技术人员的招聘数量日益增多。利用Python将招聘信息中的行业情况、经语言的Scrapy框架技术从国内招聘网站上采集了15000条招聘数据,对数据进行了处理和存储,验要求、工资情况、学历要求、公司规模和招聘地区等进行了展现和分析。对Python语言框架技术、实现方式方法和必要代码进为正在学习Python技术或有意向从事该行业的技术人员提供行详细讲解,对目前国内招聘岗位的需求特点进行了大数据分析,了参考和借鉴。关键词:Pyhton;Scrapy;网络爬虫;可视化;数据分析中图分类号:TP393文献标志码:A文章编号:1008-1739(2020)02-61-4YANGZhong(CriminalInvestigationPoliceUniversityofChina,Shenyang110000,China)WiththewideapplicationofPythonlanguageinvariousindustriesinrecentyears,apyframeworktechnologyofPythonlanguageisusedtocollect15,000recruitmentdatafromdomesticrecruitmentwebsites,processandstorethedata,presentandanalyzeseveraldimensionsofrecruitmentinformation,suchasindustrysituation,experiencerequirements,salary,educationalbackgroundrequirements,honlanguageframeworktechnology,aanalysisisperformedforthedemandcharacteristicsofthecurrentdomesticrecruitmentpositions,whichprovidesreferencesforthetechnicalpersonnelwhoarelearnin;Scrapy;Webcrawler;visualization;dataanalysis0引言根据IEEE2019年对编程语言的排名,Python语言高居榜首,并且连续3年夺冠,已经超越Java和C语言,被称为目前,国内对Python人才的缺口已当今最流行的编程语言。部分经高达50万,使得相关职位的薪资和待遇逐年攀升,高精尖职位如人工智能和大数据开发等人才更是稀缺,不少公司开出30万元的年薪都招不到人。IT领域人才招聘的渠道主要集中在互联网招聘和熟人推荐,文章利用Python数据存储、语言的爬虫、处理和展现分析技术对当前主流的招聘网站进行分析,从数据层面反映了当前IT领域对Python技术人员的需求情况。收稿日期:2019-11-261相关技术1.1Python语言背景Python语言是一种开放源代码、免费的跨平台高级语由GuidovanRossum于1989年发明。Python语言被称为言,“胶水语言”,它可以非常容易地把Java和C++等主流语言粘在一起,实现程序之间的联动。此外,Python语言还具有入门快、简单高效、运行可靠、可扩展和数据处理能力强等特点[1]。Python语言拥有大量的第三方开源库,使其在互联网、数自动化运维、据分析、云计算、网络爬虫、Web开发和人工智能领域得到了广泛的支持和应用。1.2Scrapy爬虫框架又称为全网爬虫,网络爬虫是Python应用中的一个分支,61

技术论坛爬行对象可以从一些种子扩充到整个Web,主要为门户站点、搜索引擎和大型的Web服务商提供采集数据[2]。Scrapy框架是完全通过Python语言Python中最著名、最受欢迎的爬虫框架,基于Twisted的异步处理框架,架构清晰、模进行编写,成熟,可以应用在数据挖掘、信息块之间的耦合度低、可扩展性强,处理和存储历史数据等一系列的程序中。下:mportpositomItemclasspositionSpider():allowed_domains=[‘start_urls=['']defparse(self,response):Position_list=('//*[@class="pList"]/li')forpositioninPosition_list:item=positomItem()]’计算机与网络选择器来对response变量包含的内容进行解析,部分代码如#过滤爬取的域名1.3Echars可视化库Echarts是由百度公司开发的一款基于JavaScript技术来实现的开源Web可视化库,称为商业级数据图表。Echars底层依赖轻量级的canvas类库ZRender,提供直观、友好、可交互和如折线图、柱状图、散点高度个性化定制的数据可视化图表,饼图、图、K线图、雷达图和位置坐标图等上百个图表。Echars的架构分为ZRender层和Echars层两部分,其中ZRender层对图形动画、渲染引擎和一些基本的用户交互方法进行了封装;Echars层包含了具体的调用接口、视图和一些交互组件。目前,Echars已经成为国内互联网行业最热门的可视华为和京东等公司所使用。化工具,被百度、阿里、腾讯、#要爬取的网站tem['Jobname']=('div[2]/h3/a/text()').extract_first()#解析岗位名称item['WorkYear']=('div[2]/div[1]/div/p[1]/strong/text()').extract_first()#解析工作年限2.4数据处理与存储2数据获取整本文数据主要通过某大型互联网招聘网站进行爬取,采用了个过程通过Python语言进行编写。在数据爬取过程中,数模拟请求登录、动态网页抓取代理IP和多线程等技术手段。并存据爬取后进行采集分析,对数据进行了清洗和转换处理,储到MySql数据库,最后通过Echars可视化库对数据进行展现和分析。本设计采用MongoDB数据库作为数据源存储,MongoDB基于Key-Value形式保存数据,这点与作为非关系型数据库,Python字典非常相似[3]。该语言可轻松横向拓展、分片和集群,非常适合存储大规模爬虫能够轻松应对爬虫字段变化等情况,数据。在Python中使用MongoDB,需要安装驱动,并且导入驱动包。创建并进行访问数据库,数据库创建代码为Client=MongoClient(‘localhost’,27017)[4]。数据库创建后需要实现对数据的处理方法,程序实现了Itempipelines项目管道的具体实现,包括编写数据清理、去重等方法,以及实现数据在工作年限字段,有部分内容为存储。根据对招聘网站的解析,将这2类信息“不限”或“迎接毕业生”,为了便于统计和分析,的工作年限设置为0[5]。有部分含有“实习”的工作岗位,由于本最后,将处理好的数分析仅限于全职岗位,故将实习岗位删除。据存入MongoDB数据库,并且在中定义好数据库在中实现MongoPipeline方法,的链接信息,部分代码如下:importpymongo#定义岗位名称#定义工作年限#定义学历classMongoPipeline(object):defopen_spider(self,spider):#数据库链接=lient(_uri)=[_db]defprocess_item(self,item,spider):#插入数据name=[name].insert(dict(item))2.1框架搭建通过比较流行的Scrapy爬虫框架进行编程获取,对网站岗位性质、公司性质、公司规中的岗位名称、工作年限、学历、模、公司全称、业务方向、所在城市、福利待遇、工资标准和发布日期等12条信息进行抓取。2.2数据定义对应聘者比较关心程序数据结构定义数据容器,工资待遇和工作城市的信息字段进行了定义,例如岗位要求、部分代码如下:等,classpositionitem():Jobname=()WorkYear=()Education=()······2.3框架设计其中parse()方法负责具体的爬取实编写文件,通过xpath现,resposne是start_urls里面的链接爬取后的结果,62

计算机与网络技术论坛series:[#数据库关闭{type:'bar',data:data['echart_1']['data'],barWidth:'35%',itemStyle:{color:'#2f89cf',opacity:1,barBorderRadius:5}图1数据库存储结构}]}④图表展现方法为:ion(option)。//数值为0时不绘制该柱形//柱形图圆角//纵坐标轴取值//柱状图宽度//纵坐标轴returnitemdefclose_spider(self,spider):()最终MongoDB中共收集存储了15000经过以上处理后,条招聘信息数据,数据存储结构如图1所示。3数据展现和分析3.1数据展现的实现数据结果的图形化采用了Echars可视化库,根据数据绘制出了柱状图、折线图、饼状图和地理坐标系来进行招聘数据节选招聘行业展现。因为本文中涉及的图表仿真绘制比较多,其他图表实现方式基本类似,会柱状图的程序进行详细讲解,具体实现方式如下:在行业情况分析中带出,①Echars的引入:通过语句来引用Echars库[6]。②创建Echars的DOM容器,方法如下:

③具体绘制招聘行业数据柱状图图表代码:functionecharts_1(data){varmyChart('echart1'));//初始化echarts实例option={tooltip:{},grid:{},xAxis:[{type:'category',data:data['echart_1']['x_name'],标轴取值axisLine:{show:true,lineStyle:{}},axisLabel:{}}],//x轴数据标签显示样式//横坐标线宽//横坐//柱形图阴影样式//柱形图与外容器间距=(mentById3.2行业情况分析对行业及职通过对15000条招聘数据进行可视化实现,位数量进行分析,找出了Python招聘岗位应用前6名行业,它们的排名和数量分别为移动互联网招聘数据有4893条信息、数据服务有2981条、金融行业有2211条、电商行业有2107条、信息安全有1423条、游戏行业有1001条、其他随着采用Python技术的互联行业有376条信息。可以看出,对Python工程师的需求也最大。网网站及应用越来越多,3.3工作经验要求在Echars程序的series部分,通过设置markPoint{data:[最大值,最小值]}可以设置数值曲线的最大值和最小值[6]。从工作经验要求曲线中可以看出1/3的岗位均要求3~5年的工作经验,共有5700条招聘信息,应届毕业生和超过10年工作经验仅剩600条招聘信息。的人需求最少,3.4工资情况在Echars程序中markLine属性设置data:{type:'average',name:'平均值'}可以计算出曲线平均值[6],如图2所示。从工资其曲线中,可以看到,Python岗位的平均工资为每月19134元,中招聘的应届毕业生的工资最低,平均仅为8030元,招聘3~达到27380元。10年以上工作经验工资最高,图2工资情况曲线图63

技术论坛经验在3~5年左右的程序员工从曲线趋势中可以发现,结合上面工作经资会有一个较大提升,超过行业内平均工资,验曲线可以发现,这些技术人员的需求量也最大,所以相应的工资给的也比较多。经验在5~10年内工资将会达到一个比较高的水平,但是招聘需求量有所递减。经验要求超过10年的变化不大甚至还有些回落的趋势,分析10年以上的程序员工资变动不大。虽然经验丰富,但是年龄也偏大,计算机与网络3.7地区城市在参数geoCoordMap中定义城市坐标位置,并且通过最后通过setOption函数ConvertData将坐标数据值进行拼接,对地图进行展现,形成坐标地图。通过对岗位地图坐标图进行北京、广州、分析,Python岗位数量城市分布由多到少分别为:南京、武汉和苏州等10个城市。深圳、上海、成都、杭州、西安、可以发现,Python语言技术需求比较大的几个城市仍然是互联网比较发达的北上广深等一线城市,Python技术从业者在一线城市有比较大的发展。3.5学历要求通过学历要求饼状图可以发现大部分Python岗位对学历本科生共有要求不高,岗位需求普遍集中在本科生和专科生,占50%;占35%;7512条,专科生共有5249条,硕士研究生有占10%;1510条,博士生有148条,仅占1%;不限学历的招聘占4%。信息有613条,4结束语本文利用比较流行的Python语言Scrapy框架对互联网数据进行采集和分析,并通过Echars可视化图表将分析出来的数据进行多元展现,采用的方法为在互联网下的大数据分析和决策支持提供了思路。通过对互联网Python岗位的招聘信息进行分析可以发现,在一线城市中从事互联网行业、具备工资待遇也比较不错,为3~5年工作经验的本科生最为抢手,IT行业的求职者提供了方向。3.6公司规模情况发通过对公司上市情况和公司人员规模情况进行分析,现Python岗位招聘的公司规模大部分以中小型企业为主。没有经历过融资的公司为1493家占47%,上市公司为655家占19%。在公司规模上,以150人以下的小公司居多为1495家占44%,2000人以上的大型公司为701家占20%。参考文献[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动态数据实时刷新技图5公司规模情况综合图术的实现[J].电子技术,2018,47(3):25-27.欢迎订阅2020年《计算机与网络》期刊期刊坚持立足IT业,着眼实用和刊号:CN13-1223/TN,邮发代号:18-210。《计算机与网络》面向多层次人员,计算机与通信相结合;新应用与市场信息相结为决策层提供重要技术信息;以信息网络为中心,新技术、新产品、普及与提高相结合。本刊重点设置“电子政务、硬件世界、软件天地、防火墙、市合;电子商务、业界动态、动漫、网事、等栏目,可读性完美结合,发行量大等鲜场透析、技术论坛”信息含量丰富,技术性、实用性、具有报道及时、周期快、深受广大读者欢迎。明特色,联系电话:************投稿:***************或******************64