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