?

基于Python的招聘崗位數據分析與可視化

2022-11-22 09:07馬妍妍
信息記錄材料 2022年9期
關鍵詞:爬蟲薪資數據處理

馬妍妍

(濟南工程職業技術學院 山東 濟南 250000)

0 引言

互聯網已經成為人們生活中必不可少的獲取信息的手段,這使得人們的學習與生活更加的便捷,但也正是隨著互聯網的普及,數據大爆炸的時代提前來到,在龐大的數據面前,我們如何能快速準確地找到有效信息成為數據處理工作的重要前提,而基于python語言的數據爬蟲與數據處理,可以將干擾信息篩除,達到對數據進行精確檢索的目的,優化用戶的網絡體驗,節約人們獲取數據的時間和精力[1-4]。本文以大數據為關鍵詞搜索招聘崗位,對搜索結果進行數據采集、數據處理、數據分析和可視化展示,并得出各招聘因素之間的相關結論。

1 整體流程設計

圖1 整體流程設計

如圖1所示,本項目整體實現過程分為三大模塊:需求分析、整體設計、模塊實現,其中重點是模塊的實現過程。在實現過程中,主要采用Python語言編程實現,其中數據采集技術是采用網絡爬蟲的方式實現,獲取最原始數據源;數據處理則引入Pandas模塊,將“臟數據”篩除,將剩余數據格式統一;數據分析步驟依然引用Pandas模塊,使用索引函數loc、數據合并函數merge函數實現數據的轉換,統計函數group()實現數據的分組統計;最后使用pyecharts模塊實現數據的可視化,常見可視化圖形如:柱狀圖、折線圖、餅圖、熱點圖等。

2 關鍵技術

2.1 數據采集技術

隨著互聯網的快速發展和計算機存儲能力的提升以及復雜算法的發展,各種新技術使得全球數據量呈現出前所未有的爆發式增長態勢;與此同時,數據的復雜性也急劇增長,其多樣性、低價值密度、實時性等復雜特征日益顯著,大數據時代已經到來。面對浩瀚的數據,數據采集技術應運而生,因此數據采集成為大數據分析的入口。

數據采集(DAQ),又稱數據獲取,是利用一種程序或裝置從系統外部采集數據,經過數據清洗,最終輸入到存儲系統中的方法。它的特點是以自動化手段為主,擺脫了繁雜的人工錄入方式,而且涵蓋了全量采集、增量采集,并不會對數據進行采樣處理。數據采集的范圍相當廣泛,涵蓋了終端數據、服務器數據、互聯網設備數據等。按照數據產生的主體不同,數據采集范圍主要包括:數據庫采集、系統日志采集、網絡數據采集、感知設備數據采集[5]。

2.1.1 數據庫采集

數據庫采集主要是使用MySQL和Oracle等關系型數據庫和Redis、HBase等NoSqL數據庫進行數據庫采集。企業會通過在采集端部署大量數據庫并實現這些數據庫之間的均衡負載和分片來完成大數據的采集工作。

2.1.2 系統日志采集

此種方法主要用于收集公司業務平臺產生的大量日志數據,供離線和在線的大數據分析系統使用。日志采集系統具備高可用性、高可靠性和可擴展性,系統日志采集工具均采用分布式架構,能夠滿足每秒數百兆字節的日志數據采集和傳輸需求。

2.1.3 網絡數據采集

網絡數據采集是通過網絡爬蟲技術實現從公開網站或API獲取數據信息的過程,使用網絡爬蟲時,會從一個或若干個初始網頁的URL開始,依次獲取各個網頁上的內容,并且在抓取網頁的過程中不斷從當前頁面上抽取新的URL放入隊列,直到滿足設置的停止條件,爬取的數據可以儲存在本地的存儲系統中。

2.1.4 感知設備數據采集

感知設備是一種檢測裝置,比如攝像頭、溫、濕度傳感器等,這些設備能感受到被測量的信息,并能將感受到的信息按一定規律轉換為電信號或其他所需形式的信息輸出,以滿足信息的傳輸、處理、存儲、顯示、記錄的控制等要求。

一般在工作現場會安裝各類傳感器,獲取如壓力、溫度、流量、聲音等參數,傳感器要求能適應各種惡劣的環境。此種數據采集方式是智慧+物聯網行業應用較為普遍的一種方式。

2.2 數據處理技術

數據處理(data processing)是對數據的采集、存儲、檢索、加工、變換和傳輸。其基本目的是從大量的、可能是雜亂無章的、難以理解的數據中抽取并推導出對于某些特定的人們來說是有價值、有意義的數據。數據處理是大數據分析的核心。

從數據采集范圍和不同的產生主體可知,原始數據是各種各樣的,而應用需求和數據類型也是不盡相同,但是基本的數據處理流程是一致的。網絡爬蟲數據的處理過程就是一類非常典型的大數據應用,在合適的工具輔助下,數據處理的一般流程為:首先對數據源進行抽取和集成,將數據全部處理成統一的格式進行存儲,然后選取適合的工具,如Python提供的pandas庫,對存儲的數據進行分析,提取有益數據,通過統計分析后,將結果用可視化的方式呈現給用戶端[6]。

2.3 數據可視化技術

數據可視化是關于數據視覺表現形式的科學技術研究。即將處理統計后的數據,以顯性的可視化的方式呈現給用戶,常見的可視化工具有以下幾種。

2.3.1 Excel

Excel是微軟提供的數據處理常用的一款辦公軟件,當數據量較小時,可使用其圖表功能進行數據的可視化展示,在選項卡【插入】——【圖表】中可選擇柱狀圖、折線圖、餅圖、雷達圖等表現形式。

2.3.2 Matplotlib

Matplotlib是Python中最常用的可視化工具之一,因為在函數設計上參考了Matlab,所以叫做Matplotlib,可以非常方便地創建海量類型的2D圖表和一些基本的3D圖表,可根據數據集(DataFrame,Series)自行定義x、y軸,繪制圖形(線形圖、柱狀圖、直方圖、密度圖、散布圖等),能夠解決大部分的需要。

2.3.3 Pyecharts

Pyecharts即Python+Echarts,而Echarts是一個由百度開源的數據可視化工具,有著良好的交互性、精巧的圖表設計能力。Python與Echarts結合就形成了Pyecharts。Pyecharts是一種交互式的可視化庫,更加靈活美觀,作圖更加靈活、巧妙。

2.3.4 Tableau Public

Tableau誕生在斯坦福大學,它是一款交互式的數據可視化工具,用戶通過輕點鼠標和簡單拖放,就可以迅速創建出智能、精美的報表和儀表盤,而無需編碼。

3 重點模塊實現過程

3.1 數據采集

本項目數據來源為網絡數據,因此采用網絡數據采集,主要通過網絡爬蟲實現。網絡爬蟲又稱為網絡蜘蛛,是實現網絡數據采集的重要手段。它可以對網頁源碼信息進行分析,自動對網頁數據進行抓取[2]。具體運行機制可分為:獲取網頁源碼、分析網頁數據、提取目標數據、存儲數據四部分。如圖2所示。

圖2 數據采集過程

1)獲取網頁源碼:以Python語言為載體,利用import引用requests、BeautifulSoup模塊,首先進行網址鏈接的拼接,打開51job網站,輸入查詢崗位的關鍵字,將其與官網網址進行拼接形成最終URL,使用request訪問最終URL,該項目一共獲取前100頁數據,故每次使用for循環改變page參數值,取值范圍為1~100。

2)分析網頁數據:使用BeautifulSoup庫解析網頁數據,其訪問響應即網頁源碼轉化為一個樹狀結構,每一個結點都可以成為一個標簽對象,通過.text屬性提取該標簽的相關數據。

3)提取目標數據:使用正則表達式和BeautifulSoup對解析后的網頁數據進行定位和提取。正則表達式是對字符串操作的一種邏輯公式,通過一個特定組合,能夠從繁雜的字符串中快速提取符合條件的字串。而BeautifulSoup庫則是通過css選擇器對元素進行定位,通過樹形結構,依次對目標數據進行訪問,更加方便和快捷[3]。重點代碼如圖所示:

使用BeautifulSoup:

使用正則表達式:

4)存儲數據:該項目采用Excel存儲數據。一方面,Excel是處理數據的強大幫手,而且Python對Excel的使用提供了強大的模塊支持;另一方面,相較于大數據而言,本項目數據量較少,使用Excel管理數據會更高效便捷。本項目使用Python提供的xlwt模塊創建Excel表格,將爬取到的數據構建成列表,通過append方法將公司名稱、職位、地點、性質薪資、學歷要求、工作經驗等數據依次存入Excel表格中。

3.2 數據處理

數據處理主要是數據清洗。數據清洗(Data cleaning)是對數據進行重新審查和校驗的過程,目的在于刪除重復信息、糾正錯誤,并提供數據的一致性。這一環節也是保證后續分析結果正確性的重要一環[4]。本項目數據清洗主要進行了數據去重、空值處理、統一數據格式等操作,使用Python第三方庫Pandas庫實現這一處理,主要步驟如圖3所示。

圖3 數據處理過程

3.3 數據分析與可視化

數據的可視化首先對清洗后的數據進行分組、統計等處理,然后以圖形化的方式呈現出來,便于人們更直觀地分析總結數據背后的規律,為決策提供依據。Python生態提供了諸如Matplotlib、Tableau、Echarts、pyecharts等模塊實現數據的可視化展示,本項目主要采用pyecharts模塊進行數據的可視化展示,對招聘信息進行分析,例如:公司地點、招聘職位、薪資待遇等。下面以大數據為關鍵詞搜索到的前100頁崗位數據為例,介紹數據可視化及分析結論。

3.3.1 招聘人數分析

本項目采用pyecharts提供的Bar()函數生成柱狀圖來展示各省市招聘人數情況,從圖4可以看出,廣東、上海、江蘇、北京、浙江等一線城市招聘崗位比較多,也從側面說明了這些地區的IT、互聯網發展較其他地區要更好一些,發展機會更多。

圖4 各省市招聘人數柱狀圖

3.3.2 學歷要求

學歷要求是公司招聘職位的基本要求,本項目通過Pie()函數生成餅狀圖,展示招聘數據中的學歷要求,如圖5所示??梢钥闯鲆话胍陨系钠髽I最低學歷要求為本科,也有一部分要求大專以上學歷,其他學歷占據比例非常少。

圖5 學歷要求

3.3.3 工作經驗要求

通過Funnel()函數生成工作經驗漏斗圖,從圖6可以看出,大數據相關崗位大多數要求要有3~4年工作經驗,少部分可以接受應屆生或無經驗人群。

圖6 崗位工作經驗要求

3.3.4 崗位類型分析

通過WordCloud()函數生成詞云圖,詞云圖常用來統計某些關鍵詞出現的頻率,能夠更直觀地展示統計結果。從圖7可以看到,大數據相關的招聘崗位開發工程師最多,其次也有架構師、項目經理、運營、數據分析等崗位。

圖7 崗位類型

3.3.5 薪資待遇

依然使用餅狀圖展示該崗位的薪資待遇情況,如圖8所示。38%的企業給出的薪資在5 000~10 000元,45%的企業給出的薪資范圍在10 000~20 000元之間,5 000元以下和20 000元以上都較少。

圖8 薪資待遇

4 結語

綜上所述,本文使用Python語言為載體,實現了對大數據為關鍵詞進行搜索的招聘崗位數據的采集、處理與可視化,整體流程分為了三大模塊,分別是數據采集、數據處理和數據可視化展示,在這個過程中,數據采集采用“爬”手段獲取了原始數據,數據處理是重要環節,為正確的數據分析提供基礎保障。最后,通過可視化展示,從公司地點、工作經驗要求、薪資待遇等不同維度將招聘信息進行展示,為用戶提供了良好的參考依據。

猜你喜歡
爬蟲薪資數據處理
利用網絡爬蟲技術驗證房地產灰犀牛之說
不簡單以“住房薪資”引才——遵循“一步一重天”的人才發展規律
認知診斷缺失數據處理方法的比較:零替換、多重插補與極大似然估計法*
基于低頻功率數據處理的負荷分解方法
無人機測繪數據處理關鍵技術及運用
基于Python的網絡爬蟲和反爬蟲技術研究
大數據背景下校園輿情的爬蟲應用研究
基于MATLAB語言的物理實驗數據處理探討
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合