• 图纸下载
  • 专业文献
  • 行业资料
  • 教育专区
  • 应用文书
  • 生活休闲
  • 杂文文章
  • 范文大全
  • 作文大全
  • 达达文库
  • 文档下载
  • 音乐视听
  • 创业致富
  • 体裁范文
  • 当前位置: 达达文档网 > 应用文书 > 正文

    基于Python的GIS专业就业信息获取与分析

    时间:2020-10-30 15:27:18 来源:达达文档网 本文已影响 达达文档网手机站

    古军伟 靳海亮 杜军 王超

    摘 要:GIS专业相关招聘数据缺乏,导致学生不能整体把握行业需求及就业前景。通过Python爬虫程序爬取智联招聘中与GIS开发相关的就业信息,将处理后的数据利用Echarts和Excel进行可视化分析。通过分析数据得出以下结论:本科学历为大多数单位的招聘门槛;省会、中部以及东部沿海城市地区人才需求较多;WebGIS相比较底层或者移动端的GIS开发需求比例更高;GIS开发薪资待遇略低于计算机,但比传统GIS其它方向要高;GIS专业学生从事GIS开发比较有优势。这些结论为地信专业的学生未来从事GIS开发制定学习计划提供借鉴,也可为高校教学对接社会需求提供参考。

    关键词:Python爬虫;GIS开发就业信息;数据可视化

    DOI:10. 11907/rjdk. 191482 开放科学(资源服务)标识码(OSID):

    中图分类号:TP391文献标识码:A 文章编号:1672-7800(2020)002-0140-04

    英标:GIS Development Employment Information Acquisition and Analysis Based on Python

    英作:GU Jun-wei1,JIN Hai-liang1,DU Jun2,WANG Chao2

    英单:(1. School of Surveying and Land Information Engineering, Henan Polytechnic University, Jiaozuo 454150, China;2. Institute of Geographical Sciences, Henan Academy of Sciences, Zhenzhou 450000, China)

    Abstract:
    Colleges and universities lack the support of data analysis of GIS development and recruitment for students majoring in GIS, which leads to students"inability to grasp the industry needs and employment prospects as a whole. This paper describes the process of using Python crawler program to crawl employment information related to the development of GIS in the recruitment of Intelligent Union. After data processing, the processed data are visualized by Echarts and Excel. Through the analysis of the data, the following conclusions are drawn:
    undergraduate degree has been called the recruitment threshold of most units; there is more demand for talents in provincial capitals, central and eastern coastal cities; WebGIS has a higher proportion of demand than the bottom or mobile GIS development; the salary of GIS development is slightly lower than that of computer, but higher than other directions of traditional GIS; students majoring in GIS are engaged in GIS development. There are comparative advantages. These conclusions can provide references for students majoring in Geoclass to make learning plans for future GIS development industry, and also for university teachers to meet the needs of society.

    Key Words:
    Python crawler; recruitment information for GIS development; data visualization

    0 引言

    GIS專业是与多种学科有交集的新兴边缘学科[1]。GIS就业分为两大类:一类从事数据处理与应用,另一类从事GIS开发[2]。随着计算机技术的发展,GIS开发领域不断扩大[3-5]。

    高校GIS教育发展良好,但是在GIS专业学生培养方面却存在很多问题[6-8]。GIS专业的学生对职业需要的专业技能、学历要求、地区需求以及待遇等一系列问题很困惑[9-13]。学生获取就业信息主要有两种方式:一是通过询问老师或师兄师姐获取就业信息,二是通过搜索招聘网站获取信息[14-15]。无论哪种方式,学生都不能从整体上把控就业信息,所以高校通常采用问卷调查或者互联网在线答题方式解决这一问题,但是此方式费时、费力,获取的数据量较小。

    为了让高校教师和刚入学的GIS专业学生了解当下GIS就业技能需求、地域分布以及学历要求等综合信息,本文通过Python获取智联招聘网站GIS开发招聘信息,经过数据清洗和反地理编码处理,利用Echart和Excel对数据进行可视化展示和分析。

    1 数据采集和处理

    1.1 数据采集

    地信二次开发方向涉及到WebGIS、桌面开发和底层开发[16],为了最大程度地抓取数据,将关键词设为GIS开发,区域设置为全国,以便抓取全国范围的数据,然后在火狐浏览器的智联招聘首页上输入关键词与区域进行数据检索,利用开发人员工具(F12)获取数据请求URL,对请求的参数以及响应内容进行分析。抓取数据采用多种方式,可以通过返回Json的数据格式,也可以通过获取每个招聘信息的静态页面链接进行二次爬取,还可以通过两种方式相结合获取数据。相结合的方式可以获取每个职位的静态页面地址,并发起请求获取静态页面的数据进行正则匹配,这种方式比第一种方式获取的职位信息更多,比第二种方式获取静态页面的URL更为简单[17-18],最后将获取的数据保存为xlsx文件。

    1.1.1 数据抓取

    采用json数组和正则表达式相结合的方式获取智联招聘数据,首先设置请求的关键词和请求区域,获取招聘职位的总页数,然后通过总页数以及页数据量构造每一页的数据请求,从而获取每一页招聘信息的json数组,提取数组中的每一个静态网页URL存储到数组中。伪造头部采用随机方式,将头部信息声明为数组结合Random进行随机获取,设置每个请求休息一秒,防止计算机IP地址被封而无法进行数据爬取,采用xpath进行匹配获取每个静态页面的招聘信息[18]。以下是获取信息进行匹配的核心代码:

    job_stat = s.xpath("//div[@class="main1 cl main1-stat"])[0]

    stat_li_first = job_stat.xpath("./div[@class="new-info"]/ul/li[1])[0]

    job_name = stat_li_first.xpath("./h1/text()")[0] # 工作名

    salary = stat_li_first.xpath("./div/strong/text()")[0] # 月薪

    stat_li_second = job_stat.xpath("./div[@class="new-info"]/ul/li[2]")[0]

    company_name = stat_li_second.xpath("./div[1]/a/text()")[0] # 公司名稱

    city_name = stat_li_second.xpath("./div[2]/span[1]/a/text()")[0] # 城市名

    workingExp = stat_li_second.xpath("./div[2]/span[2]/text()")[0] # 工作经验

    eduLevel = stat_li_second.xpath("./div[2]/span[3]/text()")[0] # 学历

    amount = stat_li_second.xpath("./div[2]/span[4]/text()")[0] # 招聘人数

    job_text = s.xpath("//div[@class="pos-ul"]//text()") # 工作要求

    1.1.2 数据存储

    利用xpath代码对抓取的数据进行匹配,然后将数据以表1的数据格式存储到csv文件中,以地名+搜索关键字的方式命名文件。

    1.2 数据处理

    数据处理主要包括“脏数据”(包括重复数据和无法使用数据)的剔除和反地理编码。获取的元数据不能直接使用,因为其中有一些“脏数据”需要剔除,同时也需要为地名反地理编码。由于待处理的数据需要结合百度地图进行区域分布渲染,所以处理数据采用Java语言进行书写,剔除脏数据,同时将数据转换成json数据格式,方便数据可视化分析。反地理编码采用百度API提供的地理编码接口进行转换,逆地理编码核心代码如下:

    if (ValidateHelper.isNotEmptyString(str)) {

    Map map = new HashMap<>();

    String subStr = str.substring(str.indexOf("(") + 1, str.indexOf("})") + 1);

    //字符串转成json格式

    JSONObject jsonObj = JSONObject.parseObject(subStr);

    //获取经度

    Object lng= jsonObj.getJSONObject("result").getJSONObject("location").get("lng");

    //获取纬度

    Object lat = jsonObj.getJSONObject("result").getJSONObject("location").get("lat");

    map.put("lng", lng);

    map.put("lat", lat);

    /返回经纬度

    return map;

    }

    2 数据可视化与分析

    通过程序爬取3 123条招聘信息,经过数据清洗和去重,有3 000条可供使用。将这些数据通过Excel和Echarts[19-21]进行人才学历、招聘空间分布、技能关键字以及专业要求进行分析。

    2.1 人才学历需求分析

    从图1可以看出,地信开发行業招聘的学历需求呈现两极分化的特点:大多集中于本科和专科学历,其中本科要高于专科;研究生和学历不限的非常少,这点也说明研究生从事地信开发职业的较少,而无学历要求仅占5%的比例,说明大多数招聘单位会设有学历门槛限制。图1从一定程度上说明在地信开发行业中,本科学历就能完全满足招聘单位要求,比研究生学历从事地信开发更有优势。这种现象也与我国教育有关:研究生注重科研而本科生注重实际应用。GIS招聘要求本科学历占比非常高。

    2.2 招聘需求空间分布分析

    将招聘信息数据在空间分布上进行渲染,以热力图形式展示如图2所示。热力图越接近红色表示招聘需求越高,由热力图分布可以看出,GIS开发岗位需求大多集中于中东部地区或沿海城市,北京和上海形成了两个中心区域,颜色越深表明该区域招聘需求越大。

    2.3 技能关键字分析

    招聘需求的关键字以词云方式展示出来,统计数据中技能、数量越多的关键字,字体就越大。从图3可以看出,首要的技能就是ArcGIS系列软件操作,需要通过ArcGIS商业软件对前期数据进行加工,其次对开源的需求也有一定数量;在前端像Openlayers和LeaFlet 这类开源的API需求比商业的arcgis for javacaript需求相对较少,在数据库方面开源数据库mysql和postgresql所占比例不大,而Oracle和SqlServer所占比例较大;在编程语言方面Java和C#占比较大,紧接着是C++。Java和C#主要用于WebGIS后台处理,C++用于底层开发,说明Web开发要高于底层开发;对于WebGIS开发服务器的选择,GeoServer和ArcServer两者比例大致相等,前者代表开源,后者代表商业。无论是HTML、Css、JavaScript这类前端所用的标签和脚本语言,还是数据库、前端GIS开发API,这些技能在招聘信息中占比都较大,而且这些关键字都与WebGIS有关,印证了地信开发行业WebGIS需求很高。

    2.4 专业要求分析

    3000多份招聘信息中的专业要求(小数目专业不统计,一个职位可以多个专业)采用直方图方式展示。如图4所示,地信专业遥遥领先,紧接着就是计算机专业,两者相差不大,测绘和遥感所占比例较小。GIS开发主要涉及的是GIS理论和计算机开发技术,非专业人才难以理解GIS理论。随着各大地图厂商如百度、谷歌、高德等相继推出高度封装的API,使得非专业性的地信开发方向难度降低,对开发人员的GIS理论要求不是很高,这也是为什么计算机专业需求较高的原因,总的来说GIS专业学生比较有优势。

    2.5 薪资水平分析

    在3000份样本中主要展示WebGIS工资水平直方图(不分城市地区,工资区间格式取下限),桌面端和底层开发太少不展示。地信开发(WebGIS)的主要薪资集中于10k、8k、9k和6k,薪资水平和计算机行业差的比较多。WebGIS属于前端开发,薪资待遇要低于计算机行业的纯前端,这个问题可能源于两个方面:

    (1)WebGIS在技术开发中主要是对API的使用,例如开源中的OpenLayers和Leaflet,商业中的超图和ArcGIS。在商业方案中对API集成比较全,开发者容易快速适应。虽说开源集成可能没有商业那么好,但是开源有众多的插件可供使用,容易入门学习、成本低、可以短时间快速投入工作。一般不是专业层级的GIS项目,只需原有的前端人员简单学习就可完成项目,没有必要去招聘专门做GIS的开发人员。

    (2)WebGIS开发人员社会需求还不是很大,据招聘信息可知,招聘人数需求大约5000人,这个比例相比较计算机行业还是较少的。但是随着大数据的兴起,WebGIS社会需求会有所改变。WebGIS开发人员技能往往比较单一,即只会单一API使用,仅仅只能处理WebGIS问题,造成综合处理问题能力较低并且核心竞争力偏弱,变成项目附属人员。总体而言,GIS开发人员待遇比传统测绘和地信行业待遇好,但要略低于纯计算机行业。

    3 结语

    Python提供了多种类库,能够便捷地获取网络数据,通过Python爬虫获取网络数据是一个比较好的方式。Echart可视化结合Excel弥补了Excel在空间分布展示的缺陷。以上几种技术结合,能够快速获取和展示数据,为数据分析提供方便。

    相比较以往学校通过问卷调查、走访、发送邮件、电话咨询等方式获取就业信息,本文通过Python抓取招聘信息方式具有更加方便、快捷、准确等优势,数据通过Excel和Echart可视化展示,能够直观显示GIS开发行业人才需求,通过分析数据能够深入了解当下GIS开发详情。但此次分析的数据没有连续的年份数据,无法对GIS开发需求作出预测,如何获取连续年份数据以及对连续年份数据进行分析还需进一步研究。

    参考文献:

    [1] 王小兵,孙久运. 地理信息系统综述[J]. 地理空间信息,2012,10(1):25-28.

    [2] 龚健雅. 当代地理信息系统进展综述[J]. 测绘与空间地理信息,2004(1):5-11.

    [3] 郝杰.  基于WebGIS的近岸海域空间综合整治管理信息系统图形子系统的设计与实现[D]. 沈阳:辽宁师范大学,2018.

    [4] 宋仁波,张云,李文慧,等. 软件考试驱动的GIS专业教学改革与实践——以“空间数据库”课程为例[J]. 测绘工程,2018,27(4):76-80.

    [5] 郭先春,李大军,程朋根,等. GIS二次开发课程案例化教学方法探索[J]. 测绘科学,2011,36(3):244-246.

    [6] 白建军. GIS专业硕士研究生培养中存在的问题及对策[J]. 教育现代化 ,2018,53(5):33-35.

    [7] 中国地理信息系统协会. 2010?中国地理信息产业高校毕业生就业报告 [J]. 3s 新闻周刊,2010(10):38-44.

    [8] 陈泰生,王春,王妮,等. 新建本科高校地理信息科学专业人才培养模式研究——以滁州學院为例[J]. 湖北科技学院学报,2018,38(5):140-143,148.

    [9] 吴长彬,孙在宏,陈磊. GIS企业研究生工作站运营和人才培养模式探究[J]. 地理信息世界,2018,25(3):118-122.

    [10] 晓东. 美国GIS特色院校申请及就业展望[J]. 中国测绘,2011(6):20-25.

    [11] 刘正纲,杨金玲,李玲,等. 以人才需求为导向的GIS专业课程体系构建[J]. 测绘工程,2018,27(6):77-80.

    [12] 罗琼,蒋焕洲. 应用型地方高校地理科学专业创新人才GIS技能培养体系构建与实践的探索——以凯里学院地理科学专业为例[J]. 西部素质教育,2018,4(7):11-12.

    [13] 肖振强. 从美国GIS调查浅谈国内GIS教育与就业[J]. 中国测绘,2009(6):48-51.

    [14] 刘彦花,周美宁. GIS专业就业现状分析与人才培养的思考[J]. 大众科技,2012,14(2):187-189.

    [14] 温永宁. 浅论开源软件在GIS专业能力培养中作用[J]. 电脑知识与技术,2017,13(18):135-137.

    [15] 徐艳,黄瑞,马玉银,等. 高职院校“GIS设计与开发”课程教学改革探索[J]. 职教通讯,2017(9):8-10.

    [16] LZU-GIS . 写给在校的GISER[EB/OL]. [2018-11-08]. https://blog.csdn.net/gisshixisheng/article/details/83796585.

    [17] 罗江华. 基于MD5与Base64的混合加密算法[J]. 计算机应用,2012,32(S1):47-49.

    [18] 白雪丽. 浅析基于Python爬虫技术的特性及应用[J]. 山西科技,2018,33(2):53-55.

    [19] UNDCL.什么是Echarts?如何使用Echarts?[EB/OL]. [2017-11-04].http://www.cnblogs.com/Undeceive/p/7782830.html.

    [20] 洪敏,吴红亚,杨保华. 基于HTML的ECharts的动态数据显示前端设计[J]. 计算机时代,2018(8):27-28,32.

    [21] 万颖桦.  基于GIS技术的电商销售数据时空统计分析及可视化表达[D]. 南昌:东华理工大学,2018.

    (责任编辑:杜能钢)

    相关热词搜索: 就业信息 获取 分析

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网