admin 管理员组

文章数量: 1184232


2024年4月14日发(作者:charat 0)

较件升戎与雇用

信麵与电睡

China Computer & Communication

2021年第1期

网络招聘数据可视化系统的设计与实现

李艳•丁国强张庆

(宁夏师范学院物理与电子信息工程学院,宁夏固原756000)

摘要:由于新冠肺炎疫情的影响,传统的线下招聘变为线上招聘,求职者的就业压力急剧增大。面对各大招聘网

站中的海量信息,如何高效、直观地获取求职者想要的招聘信息是目前研究的热点。本文利用网络爬虫技术获取

Boss

聘网的招聘数据,并用

PHP

设计实现相应的数据可视化系统。实验结果表明,该系统具有良好的扩展性能,在任何网络

环境中,均能准确获取数据并显示结果。求职者通过此系统可以全面认识当前行业的招聘现状,对当代大学生的求职就

业具有指导意义。

关键词:网络招聘;网络爬虫;求职者;数据可视化

中图分类号:

TP

319 文献标识码:

A

文章编号:1003-9767 (2021) 01-112-04

Design and Implementation of the Visualization System of Online Recruibnent Data

LI

Yan

*,

DING

Guoqiang

,

ZHANG

Qing

(College

of

Physics

and

Electronic

Information

Engineering

,

Ningxia

Normal

University

,

Guyuan

Ningxia

756000,

China

)

Abstract

:

Due

to

the

impact

of

the

Corona

Virus

Disease

2019

epidemic

,

traditional

offline

recruitment

has

become

online

recruitment

,

and

the

employment

pressure

of

job

seekers

has

increased

sharply

.

Facing

the

massive

amount

of

information

in

major

recruitment

websites

,

how

to

efficiently

and

intuitively

obtain

the

recruitment

information

that

job

seekers

want

is

a

hot

research

topic

.

This

study

uses

web

crawler

technology

to

obtain

recruitment

data

from

Boss

Zhipin

.

com

,

and

designs

and

implements

a

corresponding

data

visualization

system

uses

PHP

.

Experimental

results

show

that

the

system

has

good

scalability

,

and

can

accurately

obtain

data

and

display

the

results

in

any

network

environment

.

Through

this

system

,

job

seekers

can

have

a

comprehensive

understanding

of

the

current

recruitment

status

of

the

industry

,

which

has

significant

guiding

significance

for

contemporary

college

students

^

job

search

and

employment

.

Keywords

:

online

recruitment

;

web

crawler

;

job

seeker

;

data

visualization

〇引言

随着互联网技术的迅猛发展以及网络招聘的兴起,各大

招聘网站应运而生。艾瑞统计数据显示,2020年受新冠疫

情的影响,整个市场营收规模的增速不到10%,但由于大学

生就业主要依靠网络招聘,网络招聘市场规模仍处于扩大趋

势[1]。面对各大招聘网站极为丰富的招聘信息,求职者如何

快速、高效地从海量的招聘信息中找到有价值的信息成为当

前研究的热点[2]。要在海量数据中挖掘有价值的数据,首先

要做的是获取数据,而利用网络爬虫技术可以快速、方便地

获取互联网上的大数据[34]。

PHP

是一种创建动态网页的服

务器端脚本语言,能连接各种数据库,应用非常广泛,可以

将信息直观、明了地展现给用户[5]。

本文基于网络爬虫技术获取

Boss

直聘网数据,并设计

实现了相应的数据可视化系统。该系统使用

Python

语言爬

取直聘网的招聘信息,并使用

Python

Beautiful

Soup

Pandas

Matplotlib

等第三方库对爬取的招聘数据进行处理分

析,最后利用

PHP

将数据及分析的结果通过客户端的形式直

观、明了地展示给用户。

1网络爬虫实现原理

1.1网络爬虫技术

由于互联网中含有海量的信息,可以将其表示为一个

基金资助:宁夏师范学院科学研宄项目资助(项目编号:

NXSFYB

2010)。

作者简介:李艳(1991 一),女,宁夏固原人,硕士研宄生(通信作者),助教。研宄方向:信息处理与通信技术。

E

-

mail

:

lclmyx

@163.

cora

112

n

2021年第1期

与电雇

China Computer & Communication

我件开戌与裘用

巨型蜘蛛网,在各个节点中都含有相关的信息,爬虫的过程

其实就是获取各个节点信息的过程,直到获取自身需要的信

焓息表观层

息_。在爬取的过程中,首先需要了解要访问的网站结构,

用户登录界面

信息奪询

.

信息显示

然后获取目标点的

Html

源码,并解析出其中的信息,最后

解析完成后保存获取的信息。爬虫的基本流程如图1所示。

功能实现层

〔互联网

!

DNSH

¥

Wj

~~►(读取

URL

|~网页下载

冋页数据库

执行层

Html

文件

链接俭测

蜘蛛引擎

信息采集

:种子

URLh

~*待爬取

URL

队列

b

袖取

URL

.

已抓取

URL

队列

资源层

图1爬虫的基本流程

亂文件

1.2网络爬虫框架

Scrapy

固3系统框架

Scrapy

是一个常用的爬虫框架,主要基于

Python

语言

2.2系统运行流程

实现,能够髙效地爬取

Web

站点中的结构化信息,目前已

系统运行流程如图4所示。具体运行过程分以下5步:

经广泛应用于数据分析等领域。

Scrapy

总体划分为调度器

①读取网页的

URL

地址;②蜘蛛引擎启动,向每个

URL

(

址发送访问请求,检测链接的可用性;③接收

HTTP

的响应

Scrapy

Scheduler

)、爬虫(

Spider

)、实体管道

(Item

Pipeline

)、

引擎

(Scrapy

Engine

)以及下载器(

Downloader

),

信息;④网页解析,通过

BeautifiilSoup

将不同网页格式中的

具体如图2所示。其中,

Spider

类主要与页面处理有关,

信息准确提取出来并保存,对异常情况进行处理;⑤将提取

Item

Pipeline

组件贝(

I

能够清除

Html

数据0

的有用信息通过

Matplotlib

库实现可视化;⑥用户登录客户

端,对信息进行査询。

________________-士--------------

开始

URL

-

配置文丨牛* 读取

链接检测

m

返回值判定

^ -..

+伏态码:200

厂一0

K

蹋2

Scrapy

整体架构

蝴蛛’¥擎|

系统设计与实现

数据解处理

I

数据可视化

2.1

系统总体架构

^~

T

一好*显示

该系统包括数据获取和数据显示两部分功能。首先根据

需求发起相应的请求,即发送含有请求头、请求体等信息的

结束

Request

;然后接收服务器端的响应

Response

,并对其中的信

图4系统流程图

息执行解析操作,包括文本、图片以及视频等类型的信息;

2.3系统实现

接着将解析的数据保存到数据库中;最后利用

Matplotlib

Boss

直聘网是国内知名的招聘网站之一,求职者可以在

实现数据的可视化展示,并以客户端的形式进行呈现。

此网站中寻找想要的岗位信息。本文针对

Boss

直聘网设计

系统采用四层架构设计,具体分为资源层、执行层、功

并实现了一款招聘信息获取及可视化系统。数据爬取的流程

能实现层和信息表现层。具体框架如图3所示。

如下。

113

苣■与电薦

狭件升戎与雇用

China Computer & Communication

2021

年第

1

2.3.1 利用

requests

库中的

request

( ‘

eaders

GET

’,

URL

headers=h

PHP

实现。

PHP

支持与各种类型的数据库连接。该系统获取

).

json

()获得

response

对象

的职位信息存在

MySQL

数据库中,

PHP

连接

MySQL

数据库,

某些请求若不是浏览器发出的,则无法获取相应的信息,

实现

PHP

动态网页显示

MySQL

数据库中的信息。该系统中

此时需要使用代理进行浏览器伪装,即在传递

URL

的同时,

的可视化展示模块主要有数据管理、数据信息和结果分析。

传递一个特定的

headers

头。

P

HP

连接

MySQL

的代码如下:

主要代码如下:

url

= *

https

://

www

.

zhipin

.

com

/{

shi

_

id

}/'

$link

if

=

mysql

coimect

( "

localhost

", "

root

", "123456");

Mac

headers

OS

= { '

User

-

Agent

': "

Mozilla

/5.0 (

Macintosh

;

Intel

X

10一13—5)

echo

($

link

)

else

11连接服务器成功!、

response

}

=

requests

.

get

(

start

_

url

,

headers

=

headers

)

echo

"连接服务器失败!%

2.3.2将

response

对象返回的数据分页进行爬取

mysql

close

(

$link

);

Response

>

对象中每页最多15条招聘信息,利用

page

for

循环

可获取多页信息。定义

get

_

data

(,

tag

)函数,在该函数传

3系统测试

递的参数中

,page

requests

.

get

(

start

_

url

headers

=

headers

)

本文利用开源网络爬虫框架

Scrapy

Boss

直聘中的“数

返回的

reponse

对象,

tag

表示从

json

页面中获取的

key

据分析师”一职的相关数据进行获取、分析及显示,并基于

称。即

tag

=[ ‘

positionID

’,‘

CompanyName

’,‘

city

’,

网络爬虫技术对直聘网中的“数据分析师”职位从城市分布、

<

positionName

, , <

workYear

, , *

salaryJ

, *

education

',

薪资情况及学历情况进行分析,并以柱状图的形式展示,如

publishDate

’ ],分别对应

tag

_

name

=[‘职位

ID

’,‘公司

图5、图6、图7所示。同时,用

PHP

实现

Web

登录及査询

界面,以方便求职者使用,如图8、图9、图10所示。

名称‘工作城市,,‘职位名称’,‘工作经验,,‘薪资‘学

历’,‘发布日期方便后续查看。

2.3.3数据解析

得到

response

返回的信息以后,需要用

BeautifUlSoup

Python

中的

模块对数据进行解析。本文通过

BeautifUlSoup

(

response

.

text

,‘

lxml

,)解析结果信息。

2.3.4解析后的数据保存在

MySQL

数据库中

主要代码如下:

HOST

classMysqlClient

(

object

):

PASSWD

MYSQL

def

_

init

(

self

,

host

=

MYSQL

_

,

port

=_

PORT

,

user

=

MYSQL

_

USER

,

passwd

=

MYSQL

_

,

db

=

MYSQL

_

DB

,

chareet

=

MYSQL

passwd

selfconnect

_

CHARSET

):

.

client

=

pymysql

.(

host

=

host

,

port

=

port

,

user=user

,

=

passwd

,

db

=

db

,

charset

=

charset

)

def

=

self

.

clieat

.

cursor

save

(

self

,

sql

):

2.3.5数据可视化

由于数据可视化前需要对数据进行清洗,将重复的

Matplotlib

据进行清理,所以引入

pandas

框架,利用;

Python

中的

库实现数据的可视化,并以城市分布情况、薪资

分布情况、学历分布情况为例画出它们的柱状图。

主要代码如下:

import

import

as

pit

pandas

as

pd

plt

.

bai

^

raDge

(

len

(

nuin

_

list

)),

numjist

,

tick

_

label

=

rQame

_

list

)

2.3.6数据可视化展示模块

可视化展示模块是系统最终实现的功能模块,主要通过

图6薪资分布图

114

n

2021年第1期

与电雇

China Computer & Communication

我件开戌与裘用

由图5可以看出,全国各大城市的需求童都比较大,但

天津的需求量最大。从图6可以看出,数据分析师一职的薪

资在一些大城市都比较高,而且北京的最高,每月在17 500

元左右。对于求职者来说,一些发展比较好的二线城市也是

不错的选择。从图7可得,数据分析师一职的学历要求大多

数是本科。这说明本科生以及一些优秀的大专生就可以胜任

该职位,这对于求职者有很重要的参考价值。除此之外,系

统中还包括工作经验的分布图、公司规模的分布图等,在此

没有一一列举。

图8、图9、图10是数据可视化展示的效果图,首先用

户可以通过图8所示的客户端进行注册,然后进人图9所示

的主界面,可以看到主界面有数据管理、数据信息、结果分析、

^

=}

数据査询4个功能模块。数据管理模块可以増加、删除数据,

S

7

■学历分布图

数据信息模块可以展示爬取的数据信息,结果分析模块可以

展示数据可视化的结果。图10是搜索栏中输人“数据分析师”

后的査询结果。由此可见,该系统可以直观、明了地位用户

展现利用爬虫获取的有用数据。

4结语

本文基于

Python

设计实现了

Boss

直聘网招聘信息的可

视化系统,整体设计分为两个模块:一是数据获取模块,利

用网络爬虫技术实现相关的职位信息并保存至数据库中;二

是数据可视化展示模块,利用

PHP

Boss

直聘网中冗杂的

数据明了、直观地展现出来,能够使求职者清晰了解本行业

的相关信息,快速找到自己心仪的职位。对于数据童较大的

网站,本文设计的系统还存在一些不足,如爬取数据较多时

图8登条界面

的运行速度较慢,可以通过多进程技术加快爬虫的速度,建

立分布式网络爬虫来获取更多的数据。本文设计的网络招聘

数据可视化系统能够为后续研究奠定一定的基础。

ii

il

ii

参考文献

[1] 艾瑞咨询.2019年中国网络招聘行业市场发展半年报告

i

i

n

(2019

H

1) [

EB

/

OL

].(2019-10-01)[2021-01-05].

http

://

repart

.

E

iresearch

.

cn

/

rq

>

ort

_

pdf

.

aspx

?

id

=3464.

[2] 葛琳,杨娜

.Python

招聘数据分析[

J

].计算机与网絡,

9

査询界面

2020,46(16):62-65.

ID■

[3] 钟机灵.基于

Python

网络爬虫技术的数据采集系统研究[

J

].

‘• 110693

信息通信,202(4):96-98.

G

10896

[4] 于娟,刘强.主题网络爬虫研究综述[

腿分忻师

J

].计算机工程与科

学》2015,37(2):231-237.

□ 10698

[5] 刘倩倩.基于

I

PHP

MySQL

的网站设计与实现[

J

].中小

10899

企业管理与科技(下旬刊),2020(10):162-163.

U

1

D

9〇

e

[6] 曾健荣,张仰森,郑佳,等.面向多数据源的网络爬虫实现

〇 1

Q

919

技术及应用[

J

].计算机科学,2019,46(5):304-309.

U

10934较策分折师

[7] 侯美静,崔艳鹏,胡建伟.基于爬虫的智能爬行算法研究[

J

].

! 110941

图10表询结果

计算机应用与软件,2018,35(11):215-219.

115


本文标签: 数据 信息 招聘 系统 网络