







摘要:本文利用Python爬蟲技術,從天津電子信息職業技術學院就業信息網采集近五年招聘信息,并運用數據采集、預處理和可視化分析方法,揭示了該院畢業生就業地區分布、崗位需求及專業匹配度等趨勢,為學生職業規劃和就業指導提供數據支撐。
關鍵詞:Python爬蟲;招聘信息;采集;處理;可視化分析
中圖分類號:TP311文獻標識碼:A
文章編號:1009-3044(2024)34-0057-03開放科學(資源服務)標識碼(OSID):
0引言
高校就業形勢日益嚴峻,各方積極努力為畢業生創造良好就業環境。高校就業信息網的建設為畢業生提供了便捷的就業信息獲取渠道,但也面臨著信息量龐大、檢索難度增加的挑戰。
為解決這一問題,本文基于天津電子信息職業技術學院就業信息網數據,利用Python爬蟲技術,對近五年招聘信息進行采集、處理和可視化分析,為學院就業指導工作提供數據支持。
1招聘信息爬取研究現狀
在國內,眾多學者已經開始應用網絡爬蟲技術收集與整理招聘信息。現有研究已利用Python、Jsoup、Scrapy等技術對招聘信息進行爬取和可視化分析,主要關注崗位技能、工作年限、薪資水平等方面。例如,郭瑾[1]通過Matplotlib庫面向主流招聘網站分析。張鵬[2]基于Jsoup對BOSS直聘信息篩選判斷。鄭燦偉等[3]使用基于Scrapy框架分析招聘數據。高鳳毅等[4]使用Matplotlib從某招聘網站進行關鍵詞整理篩選。
本文在此基礎上,通過設計爬蟲模型完成數據信息的獲取和可視化展示,進一步探究天津電子信息職業技術學院畢業生就業現狀與趨勢。
2技術概述
2.1技術方案
Python爬蟲技術指利用爬蟲程序自動抓取網絡數據的一種技術。Python語言在易用性、庫支持及數據處理能力等方面具有顯著優勢。使用Python爬蟲技術可以實現在海量數據中實時準確地采集目標數據,并進行智能化分析和處理,挖掘出數據背后潛在的價值與意義[5]。
使用Requests庫發送HTTP請求,獲取網頁數據。Requests庫簡化了HTTP請求的發送過程。它能夠發送各種HTTP請求(如GET、POST、PUT、DELETE等),并自動處理cookies、重定向、超時等問題。
使用JSON庫解析網頁數據。JSON庫是Python標準庫中專門用于處理JSON數據的工具。作為輕量級數據交換格式,它簡單易讀且便于編寫。JSON庫提供了幾個主要功能:dumps用于將Python對象編碼成JSON字符串,loads用于將JSON字符串解碼成Py?thon對象,dump用于將Python對象寫入到文件中(以JSON格式),load用于從文件中讀取JSON數據并解析為Python對象。這些功能使得Python能夠方便地與JSON數據進行交互,進而實現數據存儲、網絡數據傳輸等多種功能。
直接使用XPath在動態網頁數據抓取時會遇到問題。由于動態網頁的內容往往不是直接加載在HTML源碼中,而是通過JavaScript代碼在客戶端動態生成或修改的原因,當從服務器獲取到HTML源碼時,頁面上實際顯示的內容可能還沒有被渲染或生成。利用網絡請求分析技術對請求參數(如URL)、響應狀態碼(如200表示成功、404表示未找到等)、響應內容(如JSON數據)等因素進行分析,配合Requests庫技術獲取頁面數據。
常用的數據處理方法有數據清洗,數據轉換及數據合并等。數據清洗的以去除數據噪聲、填補缺失值和糾正錯誤數據格式為目的。數據轉換以將數據從一種格式或結構轉換為另一種格式或結構為方式。數據合并以消除不同量綱數據之間的差異,使得數據在同一尺度上進行比較和分析為目的。這些方法提高了數據的質量和可靠性。
使用CVS進行文件存儲。CVS文件存儲作為數據文件格式的代表,它采用純文本形式對表格數據進行存儲。具有簡潔、可讀性好及靈活性強等特點。CVS文件存儲經常用于數據交換、數據備份與恢復、數據分析等場景。CSV文件可通過編輯器手動創建,也可以通過編程語言寫入。
2.2遵循反爬機制
開發中要遵循反爬機制的原則。開發者尊重目標網站的規定,如遵守網站roboats.txt文件規則,同時避免過度請求、模擬登錄等行為,以合法合規的方式獲取數據,確保爬蟲行為的合法性和網站的穩定性。
3爬取招聘信息系統架構和實施
3.1數據采集
3.1.1路徑確定
學院就業信息網在線招聘頁面是動態網頁,通過查看源碼,該網頁的URL由兩部分組成,其中如下URL為固定不變部分:
其后由多個可變參數組成。分別時參數start、起始頁碼startPage和每頁顯示條數count。如下為完整的URL構造:
start_page=1:這個參數通常用于指定請求的起始頁碼,這里表示請求的是第一頁的數據。
count=15:這個參數指定了每頁應該返回的數據條數。這里表示每頁顯示15條數據。
start=startPage+1:這個參數通常它用于指定從哪個條目開始獲取數據。這里表示起始頁碼startPage的下一個位置。
_=時間戳:這個參數通常用于防止瀏覽器緩存結果。通過在請求中添加一個時間戳(通常是當前時間的某種表示),可以確保每次請求都是最新的,因為URL會隨著時間戳的變化而變化。
構建一個完整請求URL后,需要獲取請求頭數據headers,構造請求參數params,組成請求方法參數組(url,headers,params)。隨后,調用requests.get()方法,將基礎URL、請求頭和請求參數作為參數傳入,發起GET請求獲取頁面數據,并返回結果。
3.1.2網頁分析
根據3.1.1小節,得到學院就業信息網在線招聘頁面的第一頁數據,頁面內包含15條招聘信息。通過json解析數據的loads函數,將頁面返回結果response解析為json數據。通過關鍵字“data”獲取數據列表信息,companyList=dataJson['data']。
3.1.3數據獲取
利用源碼查看功能找到目標關鍵字key值,從data數據列表中獲取對應關鍵字的信息并封裝成一組招聘信息字典companyMessage,所有封裝好的com?panyMessage字典組合成一個列表MessageList。
3.1.4循環爬取
每頁招聘信息包含15條數據,通過計算每頁信息的數量,利用for循環進行遞歸獲取。預設想要獲取total條數據,通過page=(total//count+1)(地板除,除完之后取整數部分)運算計算當前頁碼,其中通過startPage滿足range(page)范圍循環調用爬取函數。
3.1.5數據存儲
本文通過定義存儲函數和寫入函數,可以將循環爬取的數據以結構化方式保存到CSV文件中。存儲函數saveData接收數據列表;列名csvHeader=['公司名稱','所需專業','崗位名稱','發布時間','公司簡介','招聘類型']作為表頭;提取關鍵信息;函數Dict?Writer則利用Python的csv模塊將數據循環遍歷并寫入指定的CSV文件中。其中,循環部分邏輯為:如果文件不存在,則寫入表頭writeHeader;如果文件已經存在,則直接追加數據。這種方法極大地促進了數據的持久化存儲,使得數據能夠長期保存并隨時可用。處理編碼問題時,根據實際需求確定數據庫和表的默認編碼為UTF-8,在存儲過程中使用了MySQL自帶的函數進行編碼轉換,保證數據輸入和輸出格式一致。為了防止數據丟失,采取了將數據備份到不同設備的方式,對敏感數據進行加密存儲。同時限制了對存儲服務器的未經授權的訪問,避免數據泄露和丟失。
存儲成功后,保存的招聘信息中,“公司簡介”和“工作地點”部分內容有缺失或者格式不一致(天津市,天津或者天津市)的情況。未經數據處理的CVS部分內容如表1所示。
3.2數據處理
經過爬取后保存的招聘信息中,“公司簡介”和“工作地點”兩列部分內容空缺值需要合理填補,“工作地點”列格式進行統一處理。這個過程是數據預處理和數據清洗的重要環節。針對空缺值問題,使用手動查詢和輸入的方式進行了補充。針對格式問題,利用Excel文本分列功能、查找和替換功能及Excel的宏等多種方式進行修改統一。處理后的CVS文件內容如表2所示。
3.3可視化分析
從工作地分布規律來看,針對天津本地的招聘信息比較集中,占整個招聘信息的50%左右,排名第一。其次是北京市、深圳市等。隨著天津產業升級和新興產業的發展,對高技能人才的需求不斷增加,為專科生等層次人才提供了更為廣闊的就業空間。天津高校致力于服務京津冀協同發展,在招聘信息收集工作中,積極與優秀企業合作,營造良好就業環境,為畢業生提供更多就業機會和發展空間,助力天津高質量發展。因此,就業工作地的分布呈現以天津為核心,緊密依托京津冀協同發展戰略,同時展現出向南方發達城市多元拓展的特點。具體見圖1招聘信息工作地狀態分布圖。
此外,從學生對招聘崗位的瀏覽次數可以看出,不同崗位對學生的吸引強度。其中,能提供廣泛就業領域、不設專業限制的崗位,成為學生們心中的熱門之選。另外,信息類、計算機類和機械機電類是學院的特色專業,也具有豐富的就業機會,穩居就業崗位吸引力排行榜的前三名。
從2020年至2024年(截至5月份)以來,招聘單位的數量整體趨勢不容樂觀,從2020年到2023年呈現逐年降低的趨勢(其中因2024年為1~5月數據,按照同比例算法模擬2024整年的數據為橙色部分。實際上,要準確判斷2023之后招聘單位數量的變化趨勢,需要具體的、實時的數據支持),其中在2021年達到最大值。就業網招聘信息數量呈現下降趨勢的原因可能是多方面的,比如宏觀經濟、就業形勢和學院自身因素等。在全球經濟不確定性增加的背景下,可能影響到企業的招聘縮減。學院通過優化招聘流程、提高招聘效率等方式,也會影響招聘信息的發布次數。例如,線上智能化招聘、內部點對點推薦等方式,可以更快速、更精準地找到合適的就業候選人。此外,學院工匠工坊建設作用關鍵,不僅能夠給學生提供扎實的專業知識和技能,也增加了豐富的實習實訓機會和就業渠道,提升高質量就業。具體見圖2近5年招聘單位數量圖。
4結束語
本研究利用Python爬蟲技術對天津電子信息職業技術學院就業信息網招聘數據進行了采集與分析,結果表明:從工作地分布規律來看,天津本地占整個招聘信息的50%左右,其次是北京市,深圳市等,招聘崗位一線城市較多,可重點推薦給學生。從學生對招聘崗位的瀏覽次數可以看出,學生筆記關注就業領域、專業不限的崗位,尤其信息類、計算機類和機械機電類特色專業就業機會多,可加大專業人才培養等。本研究為高校就業指導提供了數據支持,未來研究將進一步改進爬蟲程序的效率和穩定性,豐富數據類型,擴展數據來源,進行更深入的數據挖掘分析。
參考文獻:
[1]郭瑾.基于Python的招聘數據爬取與數據可視化分析研究[J].輕工科技,2024,40(2):94-96,99.
[2]張鵬.基于Jsoup爬蟲的BOSS直聘信息爬取[J].無線互聯科技,2023,20(2):106-108.
[3]鄭燦偉,賀丹,羅嘉惠,等.基于Scrapy框架的互聯網招聘信息可視化技術研究[J].科技與創新,2024(6):6-10.
[4]高鳳毅,葛蘇慧,林喜文,等.基于Python的招聘網站數據爬取與分析[J].電腦編程技巧與維護,2023(9):70-72.
[5]蘇明焱.基于Python的招聘網站信息的爬取與數據分析[J].信息與電腦(理論版),2022,34(24):193-195.
【通聯編輯:李雅琪】