摘 要:近年來,校園招聘因招聘時(shí)間集中、更具針對(duì)性的特點(diǎn),為企業(yè)招聘和應(yīng)屆大學(xué)生求職提供了極大的便利。基于Python對(duì)校園招聘網(wǎng)站的數(shù)據(jù)進(jìn)行分析,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)校園招聘網(wǎng)站數(shù)據(jù)分析與可視化系統(tǒng)。系統(tǒng)主要包括用戶注冊(cè)、登錄、數(shù)據(jù)爬取、數(shù)據(jù)分析與可視化等功能。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)可以幫助求職者更好地了解招聘市場(chǎng)情況,分析市場(chǎng)趨勢(shì),以更好地規(guī)劃自己的職業(yè)方向。
關(guān)鍵詞:Python;校園招聘網(wǎng)站;數(shù)據(jù)分析與可視化;求職者;Django;MySQL
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2025)06-0-04
DOI:10.16667/j.issn.2095-1302.2025.06.027
0 引 言
近20年來,我國(guó)高校畢業(yè)生人數(shù)增長(zhǎng)了446%以上。2024屆高校畢業(yè)生規(guī)模預(yù)計(jì)1 179萬(wàn)人,同比增加21萬(wàn)人。在就業(yè)市場(chǎng)中,人才供需比增大,大學(xué)生就業(yè)難度逐年上升。校園招聘作為大學(xué)生就業(yè)的最主要途徑之一,對(duì)于解決就業(yè)難問題起到了關(guān)鍵性的作用[1],因此,對(duì)校園招聘網(wǎng)站(以下簡(jiǎn)稱“校招網(wǎng)”)的數(shù)據(jù)進(jìn)行分析和可視化,可以幫助高校大學(xué)生更好地了解招聘市場(chǎng)情況[2],提前做好職業(yè)規(guī)劃和就業(yè)準(zhǔn)備。
本文設(shè)計(jì)開發(fā)的校招網(wǎng)數(shù)據(jù)分析與可視化系統(tǒng),基于數(shù)智化校招平臺(tái)??途W(wǎng)、使用Django作為Web框架、利用Python語(yǔ)言和Selenium爬蟲庫(kù)爬取網(wǎng)站中的企業(yè)招聘信息,系統(tǒng)首先在數(shù)據(jù)獲取階段通過網(wǎng)絡(luò)爬蟲技術(shù)爬取??途W(wǎng)中互聯(lián)網(wǎng)行業(yè)的職位信息,然后通過Python的BeautifulSoup庫(kù)對(duì)網(wǎng)頁(yè)內(nèi)容進(jìn)行解析[3],收集工作崗位、薪水、地域等數(shù)據(jù),并將這些數(shù)據(jù)存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中,從而更加便捷地完成對(duì)數(shù)據(jù)的分析與可視化處理。
1 系統(tǒng)功能需求分析
本系統(tǒng)需要爬取數(shù)據(jù)并進(jìn)行可視化分析,主要分為四大模塊,包括數(shù)據(jù)采集與存儲(chǔ)模塊、數(shù)據(jù)處理與分析模塊、可視化模塊以及數(shù)據(jù)管理模塊。
數(shù)據(jù)采集與存儲(chǔ)模塊:本系統(tǒng)數(shù)據(jù)來源是通過爬蟲機(jī)制爬取??途W(wǎng)招聘模塊中的各類職位需求數(shù)據(jù),并通過MySQL數(shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)大學(xué)生招聘職位需求數(shù)據(jù)的存儲(chǔ)。針對(duì)網(wǎng)絡(luò)爬蟲技術(shù)選型較多,影響抓取效率和準(zhǔn)確性的問題,一般以Requests、Scrapy和Selenium三種爬蟲技術(shù)為主流[4]。為防止在爬取數(shù)據(jù)時(shí)被網(wǎng)站封禁,本系統(tǒng)采用了自動(dòng)化爬蟲Selenium框架,該框架能夠模擬人瀏覽網(wǎng)頁(yè)的操作,爬取動(dòng)態(tài)加載的數(shù)據(jù),同時(shí)可以繞過一些網(wǎng)站設(shè)置的反爬措施,防止因長(zhǎng)時(shí)間的異常數(shù)據(jù)加載而被網(wǎng)站屏蔽,從而更好地爬取數(shù)據(jù)[5-7]。
數(shù)據(jù)處理與分析模塊:該模塊主要用于處理與分析從網(wǎng)站爬取并保存的數(shù)據(jù),包括過濾無效數(shù)據(jù)和刪除多余的重復(fù)數(shù)據(jù),運(yùn)用算法和模型來分析數(shù)據(jù)并提取出有價(jià)值的信息,以保證后續(xù)模塊正常運(yùn)行。該模塊需要具備高效的數(shù)據(jù)分析和處理能力,以便有效地處理大量數(shù)據(jù),并從中提取出有意義的信息。
可視化模塊:可視化模塊主要為用戶提供圖表、報(bào)表等形式的數(shù)據(jù)分析結(jié)果展示,以便于用戶快速地理解數(shù)據(jù)。該模塊需要提供多種圖表類型和交互式界面,能夠進(jìn)行數(shù)據(jù)的篩選與查看等,以方便用戶對(duì)不同類型的數(shù)據(jù)進(jìn)行比較與分析。
數(shù)據(jù)管理模塊:數(shù)據(jù)管理模塊主要包括賬戶管理(用戶和管理員)、個(gè)人信息管理、歷史查閱記錄管理、招聘信息管理四種功能。用戶可以在查看招聘職位時(shí),將有意向的職位加入自己的歷史查閱記錄,方便以后快速查找。系統(tǒng)為管理員提供了數(shù)據(jù)的增刪改查功能,方便管理員對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新和維護(hù),保證系統(tǒng)數(shù)據(jù)的有效性。
2 系統(tǒng)總體設(shè)計(jì)
2.1 系統(tǒng)功能模塊設(shè)計(jì)
通過需求分析,從系統(tǒng)開發(fā)的角度可將系統(tǒng)設(shè)計(jì)為四個(gè)功能模塊:用戶、管理員、個(gè)人設(shè)置、數(shù)據(jù)分析與可視化,系統(tǒng)功能模塊如圖1所示。
用戶:用戶具有注冊(cè)、登錄、退出功能。
管理員:管理員具有用戶管理、權(quán)限管理和條件查詢功能,能夠保證系統(tǒng)數(shù)據(jù)的時(shí)效性。
個(gè)人信息:用戶登錄系統(tǒng)后,可對(duì)用戶名、學(xué)歷、工作經(jīng)驗(yàn)、頭像、密碼等個(gè)人信息進(jìn)行修改和管理,也可以對(duì)個(gè)人的歷史查閱記錄進(jìn)行管理。
數(shù)據(jù)分析與可視化:針對(duì)薪資分布、企業(yè)情況、專業(yè)需求(標(biāo)簽詞云)、城市類型的可視化需求,所使用的全部數(shù)據(jù)可在數(shù)據(jù)總覽模塊查看。
2.2 系統(tǒng)整體架構(gòu)設(shè)計(jì)
通過需求分析,本系統(tǒng)從技術(shù)架構(gòu)角度設(shè)計(jì)規(guī)劃了六個(gè)層面,分別是前端 UI、展示層、業(yè)務(wù)層、計(jì)算層、數(shù)據(jù)庫(kù)、操作系統(tǒng)層[2]。系統(tǒng)架構(gòu)如圖2所示。
(1)前端UI和展示層,主要利用前端頁(yè)面相關(guān)技術(shù)和 ECharts對(duì)業(yè)務(wù)層所輸出的數(shù)據(jù)進(jìn)行可視化展示,幫助用戶更直觀地了解目前的就業(yè)市場(chǎng)情況。
(2)業(yè)務(wù)層,該層主要展示了項(xiàng)目后端開發(fā)所實(shí)現(xiàn)的相關(guān)功能,將所需數(shù)據(jù)傳輸?shù)角岸苏故緦印?/p>
(3)計(jì)算層,主要針對(duì)網(wǎng)絡(luò)爬取并清洗后存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行分析計(jì)算,并通過業(yè)務(wù)層將相關(guān)數(shù)據(jù)傳輸?shù)角岸苏故緦印J褂肞andas進(jìn)行聚合計(jì)算。
(4)數(shù)據(jù)庫(kù),使用 MySQL存儲(chǔ)登錄用戶的信息以及爬取并清洗后的數(shù)據(jù)。
(5)操作系統(tǒng)層是系統(tǒng)運(yùn)行的基本環(huán)境,在 Windows 系統(tǒng)中搭建Python、MySQL、Django環(huán)境以運(yùn)行系統(tǒng)。
2.3 數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)
通過對(duì)基于Python的校招網(wǎng)數(shù)據(jù)分析與可視化系統(tǒng)中功能模塊的需求分析,系統(tǒng)選用關(guān)系型數(shù)據(jù)庫(kù)MySQL來實(shí)現(xiàn)數(shù)據(jù)實(shí)體邏輯關(guān)系的設(shè)計(jì)。
系統(tǒng)賬號(hào)表主要用于存儲(chǔ)系統(tǒng)中所有用戶角色的登錄賬號(hào)信息。在表結(jié)構(gòu)設(shè)計(jì)中,字段內(nèi)容包含主鍵、用戶名、登錄密碼、姓名。系統(tǒng)賬號(hào)見表1。
用戶自定義信息表用于存放用戶自定義設(shè)置的信息。在表結(jié)構(gòu)設(shè)計(jì)中,字段內(nèi)容包含主鍵、用戶名、姓名、學(xué)歷、工作經(jīng)驗(yàn)、意向城市、所在城市、意向崗位、頭像,用戶自定義信息見表2。
3 系統(tǒng)實(shí)現(xiàn)
3.1 登錄
該系統(tǒng)分為管理員和普通用戶兩種類型。定義一個(gè)login模塊,用戶可點(diǎn)擊“注冊(cè)”按鈕進(jìn)行注冊(cè),注冊(cè)完成后可在此頁(yè)面輸入username和password登錄系統(tǒng),與數(shù)據(jù)庫(kù)user表中的數(shù)據(jù)進(jìn)行比對(duì)驗(yàn)證,驗(yàn)證成功后,系統(tǒng)會(huì)根據(jù)不同的登錄身份配對(duì)不同的應(yīng)用權(quán)限,以保證系統(tǒng)不會(huì)受到普通用戶的惡意損壞,提高了系統(tǒng)的安全性,使系統(tǒng)可以正常運(yùn)行。
3.2 個(gè)人信息修改
定義一個(gè)selfInfo模塊,用戶可在個(gè)人信息修改界面對(duì)個(gè)人信息數(shù)據(jù)進(jìn)行修改,如用戶名、學(xué)歷、工作經(jīng)驗(yàn)、意向城市、意向崗位和頭像。修改后,系統(tǒng)會(huì)自動(dòng)替換數(shù)據(jù)庫(kù)中原本的個(gè)人信息。個(gè)人信息修改界面如圖3所示。
3.3 修改密碼
定義一個(gè)changePassword模塊,用戶可在修改密碼界面對(duì)登錄密碼進(jìn)行修改。在輸入舊密碼時(shí),系統(tǒng)會(huì)將輸入的舊密碼與數(shù)據(jù)庫(kù)中存儲(chǔ)的密碼比對(duì)驗(yàn)證,在驗(yàn)證成功后,密碼被修改,同時(shí)新密碼將替換數(shù)據(jù)庫(kù)中原本儲(chǔ)存的數(shù)據(jù)。
3.4 歷史查閱
定義一個(gè)historytableData模塊,通過設(shè)置外鍵約束來完成數(shù)據(jù)庫(kù)history表中的數(shù)據(jù)一對(duì)多關(guān)系設(shè)置。定義一個(gè)addHistory模塊,將id、job_id、user_id、count作為參數(shù)傳入,用戶可在數(shù)據(jù)總覽界面將自己感興趣的招聘信息添加到歷史查閱中,系統(tǒng)會(huì)根據(jù)點(diǎn)擊次數(shù)排序,方便用戶在查閱歷史時(shí)更快地找到自己感興趣的招聘信息。歷史查閱界面如圖4所示。
3.5 數(shù)據(jù)總覽
定義一個(gè)tableData模塊,通過修改界面標(biāo)簽的方式使界面與數(shù)據(jù)庫(kù)中的數(shù)據(jù)連接,同時(shí),使用Django自帶的工具庫(kù)Paginator類對(duì)數(shù)據(jù)進(jìn)行分頁(yè)。用戶可以通過翻頁(yè)閱覽所有數(shù)據(jù),初步了解招聘市場(chǎng)。數(shù)據(jù)總覽界面如圖5所示。
3.6 薪資分布
用戶可通過選擇學(xué)歷和工作年限來獲取薪資分布、學(xué)歷需求分布和年底多薪的可視化圖表。定義一個(gè)salary模塊,將可視化圖表素材數(shù)據(jù)初始化,通過修改標(biāo)簽定位完成網(wǎng)頁(yè)制作和圖表可視化,方便用戶更加直觀清晰地了解招聘市場(chǎng)、薪資分布、學(xué)歷需求和年底多薪的情況。薪資分布查詢界面如圖6所示。
3.7 企業(yè)情況
用戶可通過選擇應(yīng)聘崗位來獲取行業(yè)數(shù)量、工作城市、公司規(guī)模情況和公司融資情況的可視化圖表。定義一個(gè)company模塊,將可視化圖表素材初始化,通過修改標(biāo)簽定位完成網(wǎng)頁(yè)制作和圖表可視化??梢暬梢詭椭脩舾庇^地了解企業(yè)情況,對(duì)企業(yè)規(guī)模、所處城市、融資情況有所了解,方便用戶進(jìn)行選擇比對(duì)[8]。企業(yè)情況界面如圖7所示。
3.8 標(biāo)簽詞云
該系統(tǒng)對(duì)出現(xiàn)最頻繁的崗位標(biāo)簽和公司標(biāo)簽做統(tǒng)計(jì)。定義一個(gè)companyTags模塊對(duì)數(shù)據(jù)集進(jìn)行詞匯切分、停用詞過濾、特征選擇,再設(shè)置好字體文件路徑、寬度、高度、詞云圖中最多顯示的詞和數(shù)量以及詞之間的間距,遍歷每個(gè)詞及概率,將其添加到wdict中,最后調(diào)用Python第三方庫(kù)WordCloud對(duì)wdict中的數(shù)據(jù)進(jìn)行詞云圖繪制,生成詞云圖[9]。
數(shù)據(jù)分析可以幫助用戶更好地了解當(dāng)前就業(yè)市場(chǎng)的用人需求,為其職業(yè)規(guī)劃提供參考依據(jù),幫助就業(yè)者更好地選擇合適的崗位。標(biāo)簽詞云界面如圖8所示。
3.9 城市類型
用戶可以通過選擇具體城市名稱來獲取基于該城市的薪資分布情況,公司人數(shù)分布圖、崗位標(biāo)簽詞云圖和學(xué)歷需求分布的可視化圖表。定義一個(gè)companyPeopleData模塊,將可視化圖表素材初始化,通過修改標(biāo)簽定位完成網(wǎng)頁(yè)制作和圖表可視化。城市類型可視化可以幫助用戶更直觀地了解該城市相關(guān)招聘信息,方便用戶更準(zhǔn)確地判斷自己是否可以在該城市獲得合適的崗位[10]。具體城市類型界面如圖9所示。
4 結(jié) 語(yǔ)
本文以??途W(wǎng)為基礎(chǔ)研究了如何對(duì)校招網(wǎng)招聘數(shù)據(jù)進(jìn)行分析與可視化。首先,采用Python編寫爬蟲程序從??途W(wǎng)獲取招聘數(shù)據(jù),然后運(yùn)用Pandas庫(kù)對(duì)數(shù)據(jù)進(jìn)行深度分析,最后以Django作為Web框架,利用WordCloud和PyLab對(duì)分析結(jié)果進(jìn)行可視化展示[3]。用戶通過系統(tǒng)能夠更加直觀地了解當(dāng)前校招市場(chǎng)情況和目標(biāo)職業(yè)的相關(guān)信息,分析當(dāng)前就業(yè)趨勢(shì),精準(zhǔn)制定自己的職業(yè)規(guī)劃。
參考文獻(xiàn)
[1]王玉龍.爭(zhēng)搶“00”后,從校園招聘發(fā)力[J].人力資源,2023(21):106-107.
[2]姜永成.基于Django的網(wǎng)絡(luò)招聘數(shù)據(jù)可視化分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科技資訊,2023(19):57-60.
[3]王瑞梅.網(wǎng)絡(luò)招聘數(shù)據(jù)可視化分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].石家莊:河北師范大學(xué),2020.
[4]楊健,陳偉.基于Python的三種網(wǎng)絡(luò)爬蟲技術(shù)研究[J].軟件工程,2023,26(2):24-27.
[5]李澤文,陳曉柱.基于Selenium+Python+Tableau的BOSS直聘數(shù)據(jù)的爬取與分析—以“軟件”專業(yè)為例[J].廣州城市職業(yè)學(xué)院學(xué)報(bào),2023,17(2):87-91.
[6]裴麗麗.基于Selenium框架實(shí)現(xiàn)Boss直聘網(wǎng)數(shù)據(jù)爬取與分析[J].山西電子技術(shù),2022(5):66-68.
[7]張嘉威,關(guān)成斌.基于Python和Selenium的智聯(lián)招聘數(shù)據(jù)的爬取與分析[J].軟件,2022,43(8):170-175.
[8]湯夢(mèng)瑤,程斐斐.基于 Spark 的地震數(shù)據(jù)分析與可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代信息科技,2023,7(18):20-24.
[9]馮淼.基于Python的電視劇視頻彈幕分析[J].電腦知識(shí)與技術(shù),2023,19(30):34-36.
[10]鄭磊,顧書緣,王學(xué)友,等.基于CNN模型的文本分類可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦與電信,2023(6):22-27.
作者簡(jiǎn)介:楊立驍(2003—),男,研究方向?yàn)閿?shù)據(jù)可視化。
孫鵬飛(2002—),男,研究方向?yàn)閿?shù)據(jù)可視化。
袁 博(2002—),男,研究方向?yàn)閿?shù)據(jù)可視化。
龍青未(2004—),女,研究方向?yàn)閿?shù)據(jù)可視化。
肖大薇(1978—),女,碩士,教授,研究方向?yàn)橛?jì)算機(jī)體系結(jié)構(gòu)及大數(shù)據(jù)技術(shù)。
收稿日期:2024-03-28 修回日期:2024-05-08
基金項(xiàng)目:大學(xué)生創(chuàng)新訓(xùn)練項(xiàng)目:基于??途W(wǎng)的企業(yè)招聘數(shù)據(jù)分析與可視化系統(tǒng)(X202313198013)