張懿源 武帥 夏換 叢楠



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