招聘网站职位需求的WebMagic主题爬虫技术分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TECHNOLOGY 技术应用摘要:互联网招聘是人才招聘不可或缺的核心途径。

论文为自动抓取招聘网站信息并精准分析职位
需求,基于WebMagic框架研发面向招聘网站职位信息分析的主题网络爬虫关键技术,对数据下载、信息
抽取、筛选与管理、存储分析与可视化等系统开发环节均提出有效的解决方法。

并以互联网行业为例挖
掘互联网行业对人才的真正要求,对有效利用招聘网站数据和指导职业生涯规划具有重要的借鉴意义。

关键词:网络爬虫;WebMagic框架;招聘网站;互联网行业;职位需求分析
一、前言
网络招聘(Internet Recruiting)起源于美国,1996年全球第一家专业招聘网站Monster上线运行。

与传统招聘相比,网络招聘不受空间和时间限制,已经成为人才招聘的重要方式[1],全球500强企业中有近九成使用网络招聘,越来越多的企业借助互联网承担人力资源管理的重要职能[2]。

中国网络招聘行业分为综合网络招聘模式、社交招聘模式、垂直招聘模式、分类信息网站模式和新兴招聘模式(拍卖、内推等)[3]。

其中,以前程无忧、智联招聘、猎聘网等网络招聘的领军企业为代表的大型综合招聘网站高速发展,当前市场份额超过60%,多寡头垄断局面明显。

随着互联网招聘数据的不断积累,应如何有效地利用这些信息,提炼有价值的规律应成为重点研究方向。

D.Smith从招聘网站收集有关程序开发人员的招聘信息,并利用关键词索引技术研究企业对求职者编程能力的需求趋势,为高校计算机专业课程设置提供重要参考[4]。

I.Karakatsanis利用美国劳工部支持的“职业信息网站”(The Occupational Information Network,简称O*NET)所提供的职位标准化描述,分析美国各个行业集中的地区分布、职位对从业者的要求随时间的变化等内容[5]。

通过对几家较为权威的求职网站所发布的数据进行统计整理,提出企业对各类专业知识与职业技能的要求[6]。

目前,国内外相关研究大多采用传统的抽样方式[7],对招聘网站数据进行人工统计整理,数据量小、效率低,不适合大数据环境下快速且智能化的数据采集与分析。

为了满足个性化检索的需求,产生了面向特定主题的“主题网络爬虫”(topic crawler)又称聚焦网络爬虫[8],可根据相关的判别算法尽可能只抓取与主题相关的页面,具有抓取速度更快、准确度更高和针对性更强等特点,在一定程度上节省了硬件和网络资源。

但随着动态网页技术(如JavaScript,Ajax)的发展,一些网页数据无法直接通过URL链接进行获取;同时网站对爬虫访问次数有严格限制。

为了解决这些问题,本文研究了抓取动态网页信息的主题爬虫技术,并基于WebMagic框架定制开发职位信息网络爬虫系统,对猎聘网职位信息的抓取、处理及存储,实现互联网职位分析和数据可视化。

二、基于主题爬虫系统的Web数据采集
(一)主题爬虫系统总体结构
Webmagic是开源的Java垂直爬虫框架,覆盖爬虫的整个流程,被业界称为“神奇的爬虫”、“Java爬虫最好的实践”。

目标是简化爬虫的开发流程,让开发者专注于逻辑功能的开发,并按照使用者的不同需求分为基础和扩展两部分。

基础部分提供了实现爬虫的基本功能,而扩展部分则以插件等形式提供丰富的个性化功能,比如本文所采用的注解模式实现主题爬虫的技术。

本文基于Webmagic框架面向大型招聘网站职位信息分析的主题爬虫系统整体流程分为四大组件:Downloader(网页下载)、Scheduler(URL管理与去重)、PageProcessor(信息抽取)和Pipeline(抽取结果处理),通过Spider将它们协调起来,实现爬虫的下载、处理、管理以及持久化等功能,并使用Chartx 数据可视化解决方案进行结果展示。

(二)网页下载
对于通用的网页下载,可通过URL直接获取网页信息,由Downloader组件负责完成,Downloader使用Apache HttpClient进行网页下载。

具体过程为通过超链接获取对应的网页,然后按照开发者定义的数据字段进行抽取,将爬取字段为空的数据舍弃,将完整的数据存储到MySQL数据库中。

cycleRetry(循环重试)机制会把下载失败的URL再放入队列尾部进行重试,一直到超过重试次数为止,该机制可以有效防止因为某些网络原因而漏抓页面的问题。

但是随着AJAX技术的不断普及,使用js渲染的前端页面越来越多。

对于爬虫而言,这种页面无法通过URL获取有效信息。

因为对于这种页面是前端动态渲染的,而不是静态文本,需要通过分析AJAX请求对爬虫框架进行定制,步骤如下:(1)当无法直接通过URL获取关键内容时,先判断是否是前端渲染的页面。

(2)找到数据请求,这是框架定制最难的部分之一,唯一可以借助的工具是浏览器中查看网络请求的开发者工具。

首先分类筛选(All、Document等选项),如果是正常的AJAX,在XHR标签下会显示,而JSOUP请求会在Scripts标签下;然后根据数据大小来判断,一般结果体积较大的更有可能是返回数据的接口。

(3)当找到数据接口后需要通过编程的方式,以模拟方式向后台发送请求数据。

难点在于找到这样的请求并模拟是需要很多实践经验和不断尝试的。

一般而言,网站都会设置单位时间同一IP的最高访问次数,一旦发现某一个IP访问超过次数限制将禁止该IP的访问,这就是所谓的反爬虫。

解决反爬虫问题只能增加爬虫的出口IP,需要从各个不同的VPS(Virtual Private Server,虚拟专用服务器)提供商购买大量低配的VPS。

之所以要从不同的VPS提供商进行购买是为了避免出口IP太过于接近,同时也避免单个服务商的“单点故障”。

招聘网站职位需求的WebMagic 主题爬虫技术分析
屈莉莉 李雪峰 翟 军
◆ 
信息系统工程 │ 2019.2.2079
TECHNOLOGY 技术应用
(三)信息抽取
PageProcessor组件负责抽取页面上的职位信息,它的定制功能主要分成三个部分:(1)对于爬虫的配置,包括:编码、抓取间隔、超时时间、重试次数等,以及一些模拟的参数。

(2)页面元素的抽取是爬虫的核心部分,对于下载的HTML页面,主要采用三种抽取技术:Xpath、正则表达式和CSS选择器。

对于JSON格式的内容,则使用JsonPath进行解析。

(3)链接的发现是该模块第三个需要考虑的问题,可采用正则表达式将一定格式的链接筛选出来然后将其加入到待抓取的队列中。

WebMagic支持使用独有的注解风格编写一个爬虫。

注解模式的开发包括三个内容:(1)首先定义所需要抽取的数据并编写Model类。

在抽取的最后,会得到这个类的一个或者多个实例,也就是爬虫的结果。

(2)在类上通过写上@TargetURL注解,定义对于哪些URL进行下载与抽取。

在本系统中,TargetURL是职位详情页,而HelpURL是职位列表页,它会显示所有职位的链接。

(3)在类的字段上通过加上@ExtractBy注解,定义这个字段需要使用什么方式、什么规则来抽取,并将抽取的结果保存到这个字段中。

(四) URL管理与去重
抓取数据的过程中需要对待抓取的URL队列进行过滤和筛选管理,即对已抓取的URL进行去重,Scheduler组件使用JDK 的内存队列方式进行URL管理与去重,具有支持集群和分布式管理的良好性能。

WebMagic框架内置了五个常用的Scheduler 管理方式,可根据抓取需求进行选择。

URL去重则有两种方式,一是HashSetDuplicateRemover,该类使用HashSet来进行去重,占用内存较大;二是BloomFilterDuplicateRemover,该类使用BloomFilter来进行去重,占用内存较小,但存在漏抓页面的可能。

(五)抽取结果处理
采用Pipeline组件实现数据抽取结果保存到数据库的功能。

之所以采用Pipeline有两个主要原因:(1)为了模块分离。

“页面抽取”和“后处理、持久化”是爬虫的两个阶段,分离这两个阶段可使代码结构变得更加清晰;同时更好的支持集群化爬取,将其处理过程分离,分开在独立的线程以至于在不同的机器上执行。

(2)Pipeline的功能相对固定,更容易做成通用组件。

本系统为了方便后续的数据分析,将WebMagic抓取的招聘信息使用Mybatis持久化到MySQL中。

在抓取网页数据的过程中,将职位对应的数据,如职位、工资、公司、行业、学历和工作年限等信息通过Mybatis存入MySQL数据库中。

三、招聘数据分析与可视化
进一步对已经保存在MySQL中的数据进行分析统计。

结果可视化功能主要使用SSM架构结合Chartx进行构建。

主要功能由三部分组成:(1)首页。

系统入口包括欢迎页、系统介绍、数据介绍和系统地址等内容。

(2)主题行业职位信息垂直检索。

按照职位类别等查询条件进行垂直检索,获取符合检索条件的职位信息。

主要使用Spring、Mybatis和SpringMvc进行前后台分页技术。

(3)主题行业职位分析结果可视化。

前端展示采用Chartx框架,Chartx把每个图表分拆为很多组件,根据不同的场景进行组件拼装,每一种图表都可以通过自由配置实现强大的扩展能力,可形成准确直观的职场分析报告。

四、互联网行业职位分析
本文以互联网相关职位为注解主题,利用自主研发的主题爬虫系统采集了猎聘网发布的6663条互联网相关职位数据,涉及到273个地区的2050家互联网公司。

(一)互联网职位的分类与典型技能分析。

通过Chartx标签云,将互联网公司所需职位概括为四大类:产品线(产品助理、产品经理和设计师)、技术线(架构师、前端工程师、开发工程师、测试工程师、运维工程师)、运营线和市场线职位。

(二)全行业职位需求比例分析。

互联网行业的基础是计算机和软件技术,技术类人才需求占比最大,达到全部职位需求的73.4%。

但随着技术开源化和更新速度加快,技术越来越不能成为产品竞争的壁垒,互联网行业对市场和销售的需求与日俱增已经达到全部职位需求的13%左右。

继续细分,技术类对研发工程师的需求占85%左右;市场和销售类对销售岗位的需求更是占到94%左右。

(三)互联网抢手与过剩职位。

首先定义职业抢手程度的公式“职位抢手程度=平均月薪发布职位数/1000”。

按照这个公式,互联网全行业最抢手的职业是销售;另外,技术类职业占据了三个,依次是研发工程师、架构师和数据工程师;同时,对产品经理需求也较大。

得分最低的职业分别是出纳、前台、行政、客服和编辑。

(四)工作年限与对应的年薪。

通过数据统计发现在工作的前五年,技术与产品类别的人员年薪属于互联网行业中较高的群体。

但五年后,运营类别的职位年薪会有较大的涨幅,后期甚至超过了做产品的人员。

职能部门的人员前期得到的薪酬相对较低,但是对于工作十年以上的人员,薪酬将与市场和设计相关职位人员达到同一层次。

五、结语
研发基于WebMagic框架面向大型招聘网站的主题爬虫系统的若干关键技术对于自动抓取招聘网站信息,提高动态网页获取准确率,减少与主题无关的冗余数据,增强Web数据分析与可视化展现效果都具有重要的参考价值。

利用该爬虫系统抽取猎聘网发布的互联网相关职位数据,剖析互联网行业岗位需求,指导互联网相关专业人才培养具有借鉴意义。

H
参考文献 
[1]朱辉.我国招聘网站的发展现状及趋势研究[J].中国商贸,2013,(35):154-155.
[2]刘玮琳,郭伏,孙凤良.考虑用户感性偏好的招聘网站首页优化设计方法[J].信息系统学报,2014,(1):69-81.
[3]陈帅,叶洋忆.企业招聘网站设计因素与应聘者求职意向—组织信任感的中介作用[J].中国人力资源开发, 2016, (3): 64-71+81.
[4]SMIT D., ALI A. Analyzing computer programming job trend using web data mining[J]. Issues in Informing Science and Information Technology, 2014,11: 203-214.
信息系统工程 │ 2019.2.20 80
信息系统工程 │ 2019.2.2081
TECHNOLOGY 技术应用
三、国网江西电力数据中心大二层技术的研究与应用
(一) 数据中心大二层网络架构设计。

江西公司数据中心资源池网络架构采用三层网络架构,提供可扩展、高可用、安全可靠网络资源。

1.核心层网络。

云计算资源池核心层采用2台或多台核心交换机,采用H3C IRF2方式虚拟化冗余部署,提供高可用、高性能资源池核心,核心网络需要支持大二层VXLAN 协议,核心交换机与公司现有核心交换进行对接。

2.汇聚层网络。

资源池汇聚层网络,提供高可用、高性能、可扩展的资源池汇聚接入网络,在生产资源区各机房各部署2台大二层汇聚交换机,虚拟化冗余部署,支持大二层VXLAN 协议。

3.接入层网络。

接入层网络设备主要提供资源池中服务器设备的接入,实现服务器HA 集群或负载均衡,保证10 GE 上行链路全线速转发,并实现跨机箱的链路捆绑,满足服务器的各种网络部署需求,接入交换机支持VXLAN 协议、虚拟化堆叠技术、传统STP 协议。

在资源池各机房以2台一组方式部署接入交换机,虚拟化冗余部署。

(二) 管理网络设计。

管理网络采用以带外管理为主的方式对业务网络进行管理。

数据中心资源池中的服务器配置两个网络链路:业务网络链路和管理网络链路,管理网络主要用于网络及物理设备监控管理用。

带外管理系统可采用千兆交换机,物理设备的带外管理口一般不具备冗余性或主备机制,多数为百兆接口、数据量较小,因此带外网管交换机可选用低端型号,仅保证上行链路的高可用性即可。

(三)网络扩展方案。

当数据中心服务器达到一定规模时,可以在现有网络架构的基础上,各个机房增加VXLAN 接入交换机和汇聚交换机以满足未来服务器不断增加的网络流量需求。

对于连接到VXLAN 内的虚拟机,由于虚拟机的VLAN 信息不再作为转发的依据,虚拟机的迁移也就不再受三层网关的限制,可以实现跨越三层网关的迁移。

四、结语
随着虚拟机和网络虚拟化进程逐渐加快,以VXLAN 技术为代表的大二层技术得到蓬勃发展,将拥有更加广阔的应
用前景。

H
参考文献
[1]杨文锋.跨数据中心虚拟网络技术设计与实现[J].国防科学技术大学,2013.
[2]格日勒图.大二层网络技术剖析及发展前景预测[J].电子技术与软件工程,2014(19).
[3]于宝郡.云数据中心网络虚拟化技术实现及应用[J].广东通信技术, 2015 (6):26-29.
[4]张子奇.数据中心网络虚拟化数据平面技术的研究与实现[J].北京邮电大学, 2015.
(作者单位:国网江西省电力有限公司信息通信分公司) 
(上接第78页)
[5]KARAKATSANIS I., ALKHADER W., MACCRORY F. Data mining approach to monitoring the requirements of the job market: A case study[J]. Information Systems, 2017, 65(4): 1-6.
[6]吕露,韩毅.基于招聘网站的信息管理职业知识技能需求调查[J].情报理论与实践,2012,35(6):88-91.
[7]姜乐,朱思超,傅培华. 综合招聘网站求职者满意度影响因素研究[J]. 电子商务,2016,(11):90-92.
[8]GALI N., MARIESCU-ISTODOR R., FR ÄNTI P. Using linguistic features to automatically extract web page title[J]. Expert Systems with Applications, 2017, 79(15):296-312.
(基金项目:教育部人文社会科学研究规划基金(项目名称:国家大数据战略下的政府开放数据的目录体系构建研究;项目编号:17YJAZH115) ; 大连海事大学教学改革立项(项目名称:创新创业教育导向的信息管理课程设计改革与探索;项目编号:2018Y43))
(作者单位:大连海事大学信息管理与信息系统专业)。

相关文档
最新文档