本系統是透過使用Python + Selenium爬蟲程式擷取BOSS直聘網站的招募數據,並將擷取的招募資料儲存到MySQL資料庫中,然後將儲存在資料庫中的招募資料進行資料清洗,其中包括資料去重、統一欄位類型和內容、刪除不相關的資料等操作,之後對清洗後的資料進行分析,其中包括某一類職位的招募數量與學歷、工作經驗、公司類型、公司規模、城市分佈等角度的分析;從學歷、工作經驗、公司類型、公司規模等角度分析某一類職位的薪資水平;計算某一類職位所出現的高頻技能詞並透過分析結果得出所要掌握的技能,最後為了直觀的展示分析結果,設計並實現了一個招聘數據可視化分析系統將分析結果以可視化圖表的形式展現。技術上採用SpringBoot框架搭建後台訪問,使用RESTful類型的API為前台提供數據,系統前台界面採用Vue + Element-UI框架搭建,可視化圖表採用v-charts + echarts圖表庫生成可視化圖表。
將bosszp-spider目錄下爬蟲程式匯入Pycharm中,開啟spiderMain文件,找到程式裡面的main函數,並對main函數裡面的spiderObj = spider('文案', city, 1)這段程式碼進行修改,將文案修改為待爬取的崗位,然後使用終端進入到Google瀏覽器的安裝目錄並執行./chrome.exe -remote-debugging-port=9222這條指令,之後在啟動好的Google瀏覽器開啟BOSS直聘網站並掃碼登錄,完成上述步驟後即可執行爬蟲程式。
找到listen 80,然后在它下面添加或替换如下配置
listen 80;
server_name localhost;
sendfile on;
keepalive_timeout 65;
charset utf-8;
#access_log logs/host.access.log main;
location / {
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
root /upload/;
index index.html index.htm; # 需要转发的url地址
}
location ^~/apm/ {
proxy_pass http://localhost:8890/;
}
location ^~/apj/ {
proxy_pass http://localhost:8890/admin/;
}
使用IDEA匯入analyse目錄下所有的後台程式碼,待所有依賴下載完成後,根據自身情況修改application.yml檔案裡面的設定內容,修改完成後使用Navicat建立名為bosszp的資料庫並匯入與設定檔同級下的bosszp.sql文件,導入完資料庫表後將採集到的招聘數據用Navicat導入到創建好的資料庫的job表中,運行後台代碼前還需對數據庫中的數據進行清洗,首先數據去重和刪除不相關的數據,然後是根據崗位名稱中出現的關鍵詞將每個崗位資訊進行分類,最後是統一欄位的類型或內容,下面給出兩個處理後的範例資料:(只展示要處理的欄位資訊)
address | handledAddress | transformAddress | type | handledType | dist |
---|---|---|---|---|---|
北京 | 北京-順義區 | Beijing | 維運工程師 | operationsEngineer | 順義區 |
深圳 | 深圳-龍崗區 | Shenzhen | 維運工程師 | operationsEngineer | 龍崗區 |
workTag | handledWorkTag | salary | handledSalary | avgSalary | salaryMonth |
---|---|---|---|---|---|
["伺服器設定", "多重處理", "多執行緒", "Linux", "演算法基礎", "資料結構", ""] | 伺服器配置多進程多執行緒Linux 演算法基礎資料結構 | [9000, 11000] | 9-11K/月 | 10000 | 0薪 |
["Python", "Java", "Go", "TypeScript", "分散式技術", "容器技術", "", ""] | Python Java Go TypeScript 分散式技術容器技術 | [15000, 25000] | 15-25K/月·13薪 | 20000 | 13薪 |
companyTags | handledCompanyTags | companyPeople | handledCompanyPeople |
---|---|---|---|
無 | [0, 20] | 0-20人 | |
["定期體檢", "補充醫療保險", "零食下午茶", "員工旅遊", "加班補助", "股票選擇權", "餐補", "節日福利", "年終獎", "五險一金"] | 定期體檢補充醫療保險零食下午茶員工旅遊加班補助股票選擇權餐補節日福利年終獎五險一金 | [0, 10000] | 10000人以上 |
資料處理完成後後台的資料的準備工作也就完成了,最後啟動一下後台代碼的主程序,若沒有發生異常錯誤則後台運行成功。
首先使用npm命令全域安裝yarn軟體包管理器,然後使用WebStorm導入recruitment-data-analysis目錄下的所有前台代碼,導入完成使用yarn install命令安裝所需模組,模組安裝完成後運行yarn run build命令將項目進行打包,打包完成後會產生一個dist資料夾,將該資料夾下的所有檔案全部放入到上面建立好upload資料夾中,完成後前台在windows11本地的存取位址為: http://localhost/