張懿源 武帥 夏換 叢楠
摘? 要: 二〇二〇年新冠疫情的出現(xiàn),對(duì)我國(guó)的就業(yè)形勢(shì)產(chǎn)生極大的沖擊。為了幫助失業(yè)人員的再就業(yè)以及求職人員的擇業(yè),有必要對(duì)疫情后國(guó)內(nèi)就業(yè)態(tài)勢(shì)進(jìn)行數(shù)據(jù)分析。文章利用Python爬取并處理招聘網(wǎng)站數(shù)據(jù),再使用Origin對(duì)這些數(shù)據(jù)作可視化分析,展示疫情后國(guó)內(nèi)招聘現(xiàn)狀,為相關(guān)人員提供就業(yè)指導(dǎo)。
關(guān)鍵詞: 就業(yè)指導(dǎo); 新冠疫情; Python; 數(shù)據(jù)分析
中圖分類號(hào):TP399????????? 文獻(xiàn)標(biāo)識(shí)碼:A???? 文章編號(hào):1006-8228(2021)01-128-04
Analyzing the post epidemic impact on employment with Python
Zhang Yiyuan1, Wu Shuai1, Xia Huan2, Cong Nan1
(1. School of Information, Guizhou University of Finance and Economics, Guiyang, Guizhou 550025, China;
2. Guizhou Key Laboratory of Simulation, Guizhou University of Finance and Economics)
Abstract: The emergence of COVID-19 epidemic in 2020 has had a great impact on the employment situation in China. In order to help the unemployed to find new jobs and the job seeker to choose jobs, it is necessary to analyze the domestic employment situation of the post epidemic in China. In this paper, Python is used to crawl and process the recruitment website data, and Origin is used to visually analyze the data, to show the current situation of domestic recruitment of the post epidemic, which provides relevant personnel with employment guidance.
Key words: employment guidance; COVID-19 epidemic; Python; data analysis
0 引言
由于今年的全球性突發(fā)衛(wèi)生事件——新冠疫情的影響,對(duì)經(jīng)濟(jì)社會(huì)產(chǎn)生嚴(yán)重沖擊,就業(yè)總量壓力加劇,失業(yè)水平可能達(dá)到新高[1-2]。因此在目前我國(guó)疫情形勢(shì)基本控制的情況下,有必要對(duì)目前國(guó)內(nèi)招聘情況作出研究。
互聯(lián)網(wǎng)作為海量數(shù)據(jù)的最主流載體之一,在目前招聘、就業(yè)的過(guò)程中,為求職人員提供了一條及其便捷的就業(yè)途徑;而同時(shí),大量信息的涌入?yún)s存在一定的局限性,讓求職人員很難把握即時(shí)招聘市場(chǎng)的變化。本文以前程無(wú)憂網(wǎng)大數(shù)據(jù)崗位為例,運(yùn)用有效的數(shù)據(jù)分析方法對(duì)所爬取的招聘信息進(jìn)行相關(guān)研究分析,為求職人員提供一定的幫助。
1 爬蟲工具與設(shè)計(jì)
1.1 網(wǎng)絡(luò)爬蟲
網(wǎng)絡(luò)爬蟲(Web Crawler),是一種按照一定的規(guī)則,自動(dòng)地爬取萬(wàn)維網(wǎng)信息的程序或者腳本。網(wǎng)絡(luò)爬蟲通常從一個(gè)稱為種子集的 URL 集合開始運(yùn)行,它首先將這些URL全部放入到一個(gè)有序的待爬行隊(duì)列里,按照一定的順序從中取出URL并下載所指向的頁(yè)面,分析頁(yè)面內(nèi)容,提取新的URL并存入待爬行URL隊(duì)列中,如此重復(fù)上面的過(guò)程,直到URL隊(duì)列為空或滿足某個(gè)爬行終止條件,從而遍歷Web[3-4]。
傳統(tǒng)的搜索引擎會(huì)獲取到大量與需求無(wú)關(guān)的信息,在這種情況下,如何高效地利用網(wǎng)絡(luò)爬蟲獲取需求的信息為生活和工作提供便利,是當(dāng)下需要研究的關(guān)鍵。
1.2 爬蟲工具概述
Python作為大數(shù)據(jù)時(shí)代的一門語(yǔ)言,它是一種高級(jí)、解釋、交互式和面向?qū)ο蟮拈_源腳本語(yǔ)言[5];同時(shí)它也具有易于學(xué)習(xí)、易于閱讀、易于維護(hù)以及豐富的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)等優(yōu)點(diǎn)。而在使用前,需要搭建好使用環(huán)境并選擇一款合適的編譯工具來(lái)完成爬蟲的設(shè)計(jì),本文中的爬蟲是基于Python3.8環(huán)境基礎(chǔ)的應(yīng)用框架Scrapy設(shè)計(jì)完成的[6-7]。
1.3 爬蟲的設(shè)計(jì)
爬蟲系統(tǒng)的整體設(shè)計(jì)思路:①需要?jiǎng)?chuàng)建一個(gè)爬蟲項(xiàng)目;②獲取所有包含招聘信息網(wǎng)頁(yè)的源碼;③在每一頁(yè)的網(wǎng)頁(yè)源碼中挖掘出與需求相匹配的信息,再將成功獲取的信息存入CSV文件中,直至爬取工作完成??偨Y(jié)可得設(shè)計(jì)框架如圖1所示。
整個(gè)爬取流程如下:①在Visual Studio Code中新建爬蟲項(xiàng)目文件并調(diào)試好Python環(huán)境;②導(dǎo)入Scrapy爬蟲框架;③設(shè)置待爬取網(wǎng)站列表,為爬取數(shù)據(jù)做好準(zhǔn)備;④設(shè)置待爬取關(guān)鍵字key,本文中設(shè)置為“大數(shù)據(jù)”;⑤在前程無(wú)憂網(wǎng)站中挖掘出與所需信息匹配的URL;⑥依據(jù)挖掘出的URL設(shè)置需要爬取的網(wǎng)頁(yè)地址;⑦設(shè)置爬取次數(shù),本文中設(shè)置爬取網(wǎng)頁(yè)數(shù)據(jù)200次;⑧提取所需數(shù)據(jù)信息,如:工作職位、工作地區(qū)、薪資等,并按照一定順序排列;⑨建立CSV文件并將爬取的信息數(shù)據(jù)存入其中。這樣研究數(shù)據(jù)就已獲取,為下一步數(shù)據(jù)分析奠定基礎(chǔ)。爬取獲得的部分?jǐn)?shù)據(jù)如圖2所示。
2 數(shù)據(jù)分析
2.1 數(shù)據(jù)處理
通過(guò)對(duì)前程無(wú)憂網(wǎng)站上爬取了近期一萬(wàn)條大數(shù)據(jù)職位招聘數(shù)據(jù),從獲得的工作崗位、工作地點(diǎn)、薪資待遇等方面初步的了解目前疫情基本控制情況下大數(shù)據(jù)職位招聘概況。
由圖2可知,爬取的數(shù)據(jù)中工作地區(qū)的格式有所不同,有的為“城市”格式,如“廣州”;有的為“城市—區(qū)域”格式,如“重慶—江北區(qū)”;還有的為異地招聘或者為空;因此需要將格式進(jìn)行統(tǒng)一,將“城市—區(qū)域”格式中“區(qū)域”去除,如將“北京—海淀區(qū)”中“海淀區(qū)”去除,轉(zhuǎn)化為“北京”;并清理掉異地招聘和空白的數(shù)據(jù)。部分代碼如下:
def?locFormat(locality):
newLocality=[]
for?loc?in?locality:
if?'-'in?loc:
newLoc=re.findall(re.compile('(\w*)-'),loc)[0]
else:
newLoc=loc
newLocality.append(newLoc)
return?newLocality
同樣如圖2所示,在薪資一欄,爬取的數(shù)據(jù)格式也有出入,有的為“萬(wàn)/月”格式,如“1.5-2.5萬(wàn)/月”;有的為“千/月”格式,如“4.5-6千/月”;還有的為“萬(wàn)/年”格式,如“10-20萬(wàn)/年”;因此需將薪資格式規(guī)范化,統(tǒng)一為“千/月”格式,并將薪資拆分為最低薪資和最高薪資,如將“4.5-6千/月”轉(zhuǎn)化為:最低薪資為4.5,最高薪資為6;同樣需清理掉空白數(shù)據(jù)。部分代碼如下:
def?salaryCleaning(salary):
minSa,?maxSa=[],?[]
for?sa?in?salary:
if?sa:
if?'-'in?sa:
minSalary=re.findall(re.compile('(\d*\.?\d+)'),sa)[0]
maxSalary=re.findall(re.compile('(\d?\.?\d+)'),sa)[1]
if?u'萬(wàn)'?in?sa?and?u'年'?in?sa:
minSalary=float(minSalary)/12*10
maxSalary=float(maxSalary)/12*10
elif?u'萬(wàn)'?in?sa?and?u'月'?in?sa:
minSalary=float(minSalary)*10
maxSalary=float(maxSalary)*10
else:
minSalary=re.findall(re.compile('(\d*\.?\d+)'),sa)[0]
maxSalary=""
if?u'萬(wàn)'?in?sa?and?u'年'?in?sa:
minSalary=float(minSalary)/12*10
elif?u'萬(wàn)'?in?sa?and?u'月'?in?sa:
minSalary=float(minSalary)*10
elif?u'元'in?sa?and?u'天'in?sa:
minSalary=float(minSalary)/1000*21
else:
minSalary="";?maxSalary="";
minSa.append(minSalary);?maxSa.append(maxSalary)
return?minSa,maxSa
這種薪資規(guī)范化處理,能讓擇業(yè)人員便捷直觀地了解到各個(gè)公司對(duì)該招聘崗位薪資的上下限,能更好地對(duì)不同公司進(jìn)行對(duì)比,以此來(lái)做出選擇。部分?jǐn)?shù)據(jù)處理結(jié)果如圖3所示。
2.2 數(shù)據(jù)分析結(jié)果
在今年新冠疫情基本控制的情況下,我國(guó)經(jīng)濟(jì)慢慢復(fù)蘇,之前因疫情失業(yè)或擇業(yè)人員可以在此時(shí)的招聘市場(chǎng)中尋找適合自己的工作,而如何在招聘市場(chǎng)中做出最佳的選擇正是本文研究的目的。
研究可得,目前大數(shù)據(jù)崗位數(shù)前20的城市如圖4所示。從圖4可以看出,目前國(guó)內(nèi)不同城市之間大數(shù)據(jù)崗位提供量還是有很大差別,其中需求量最多的前三名城市分別為:上海、廣州和深圳,而緊隨其后則是北京、杭州等一線或新一線城市。由此可見大多數(shù)的大數(shù)據(jù)崗位就業(yè)機(jī)會(huì)大多集中在一線或新一線城市,其余二線城市提供的就業(yè)崗位就有所欠缺;而目前北京提供就業(yè)機(jī)會(huì)相對(duì)較少的原因大概是6月份新冠疫情在北京二次爆發(fā),導(dǎo)致北京又再次趨近于封城的狀態(tài),不過(guò)近日疫情狀況有所好轉(zhuǎn),相信不久北京的大數(shù)據(jù)崗位就業(yè)機(jī)會(huì)將會(huì)大量提升;緊隨其后的則是經(jīng)濟(jì)發(fā)展較快的杭州、成都、武漢、南京等城市,這幾座城市相對(duì)剩下的城市而言,大數(shù)據(jù)崗位提供量也明顯超出許多,由此可初步推斷大數(shù)據(jù)崗位的就業(yè)機(jī)會(huì)與城市發(fā)展程度成正比,同樣的,在發(fā)展程度較高的城市就業(yè),職業(yè)提升發(fā)展?jié)摿σ蚕鄬?duì)增加。
同時(shí),如圖5所示前程無(wú)憂大數(shù)據(jù)崗位平均薪資前20名城市圖。從可以看出,目前國(guó)內(nèi)平均薪資最高的城市是蚌埠,平均薪資為40千元/月,其余較高的城市中也有一些非一線城市,比如懷化、株洲等,平均薪資也在30千元/月和25千元/月左右,而一線城市的平均薪資如上海,深圳,北京,則為18~20千元/月之間。由此可見,大數(shù)據(jù)崗位需求量多的城市其平均薪資不一定高,相反,大數(shù)據(jù)職位需求多的城市的平均薪資更低,而大數(shù)據(jù)職位需求少的城市的平均薪資更高。但這與城市經(jīng)濟(jì)發(fā)展程度對(duì)比相差過(guò)大,通過(guò)回顧之前爬取的數(shù)據(jù)處理結(jié)果,發(fā)現(xiàn)這些非一線城市提供的大數(shù)據(jù)崗位數(shù)僅為個(gè)位數(shù),數(shù)據(jù)參考量不足,較一線城市相比,雖然薪資較高,但就業(yè)機(jī)會(huì)較少,職業(yè)提升發(fā)展?jié)摿赡茌^差;而一線城市的薪資兩極分化較大,導(dǎo)致平均薪資較少。求職人員可以依據(jù)自己的職業(yè)規(guī)劃對(duì)就業(yè)城市做出選擇,若想追求高薪資,可以選擇非一線城市;若想追求職業(yè)提升發(fā)展?jié)摿?,可以選擇一線城市。
3 結(jié)束語(yǔ)
綜上所述,利用Python對(duì)疫情后前程無(wú)憂大數(shù)據(jù)崗位信息進(jìn)行爬取,獲得近期關(guān)于大數(shù)據(jù)崗位的工作地區(qū)、薪資待遇等一系列信息并加以處理分析,對(duì)相關(guān)求職人員的職務(wù)選擇起到一定積極的作用。此種方法不僅適用于大數(shù)據(jù)崗位,同樣適用于不同時(shí)期、多種行業(yè),求職人員可以此把握招聘市場(chǎng)的總體走向,從而做出合理抉擇。
參考文獻(xiàn)(References):
[1] 程杰.新冠疫情對(duì)就業(yè)的影響及對(duì)策建議[J].中國(guó)發(fā)展觀察,2020.Z2:40-42
[2] 莫榮,陳云,鮑春雷,黃湘閩.新冠疫情與非典疫情、國(guó)際金融危機(jī)對(duì)就業(yè)的影響與對(duì)策比較分析[J].中國(guó)勞動(dòng),2020.1:16-30
[3] 謝克武.大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)[J].電子制作,2017.9:44-45
[4] 孫立偉,何國(guó)輝,吳禮發(fā).網(wǎng)絡(luò)爬蟲技術(shù)的研究[J].電腦知識(shí)與技術(shù),2010.6(15):4112-4115
[5] 郭麗蓉.基于Python的網(wǎng)絡(luò)爬蟲程序設(shè)計(jì)[J].電子技術(shù)與軟件工程,2017.23:248-249
[6] Alan Winston. Python[M].Elsevier Inc.:2003-06-15.
[7] 韓貝,馬明棟,王得玉.基于Scrapy框架的爬蟲和反爬蟲研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2019.29(2):139-142
[8] 劉宇,鄭成煥.基于Scrapy的深層網(wǎng)絡(luò)爬蟲研究[J].軟件,2017.38(7):111-114
收稿日期:2020-08-17
基金項(xiàng)目:貴州省科學(xué)技術(shù)基金(黔科合基礎(chǔ)[2019]1041、黔科合基礎(chǔ)[2019]1403、黔科合基礎(chǔ)[2020]1Y279); 貴州省普通高等學(xué)??萍及渭馊瞬胖С钟?jì)劃項(xiàng)目(黔教合KY字[2016]068); 貴州財(cái)經(jīng)大學(xué)2019年度校級(jí)項(xiàng)目(2019XQN01)
作者簡(jiǎn)介:張懿源(1995-),男,遼寧撫順人,碩士生,主要研究方向:信息服務(wù)、數(shù)據(jù)分析。
通訊作者:夏換(1982-),男,湖南永州人,博士,教授,主要研究方向:計(jì)算機(jī)仿真、大數(shù)據(jù)分析。