拉勾網招聘資訊分析(一)
週末日常資料處理學習,心血來潮對拉勾關於Python職位招聘表示很感興趣,所以拿點資料作為學習和實踐。
獲取欄位:
- 職位名稱
- 公司名稱
- 工資待遇
- 工作經驗
- 學歷要求
資料獲取思路:
模擬人為瀏覽網頁行為,新增header、加大延時(如果頻繁獲取會出現403,不過很快解禁)、新增代理(現在代理網站都不咋的,用那麼幾下就error;各位大牛有好網站可推薦哦)。分析網頁結構,藉助html自帶標籤和各欄位class採用css方式解析需要欄位。
資料獲取程式碼
# post請求引數 header = { 'Host': 'www.lagou.com', 'Referer': 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' } param = { 'first': 'true', 'pn': page, 'kd': kind } # 請求的url url = 'https://www.lagou.com/jobs/positionAjax.json?px=default&city=%E5%8C%97%E4%BA%AC&needAddtionalResult=false' response = requests.post(url, headers=header, data=param) response.encoding = 'utf-8' if response.status_code == 200: response = response.json() # 請求響應中的positionResult 包括查詢總數 以及該頁的招聘資訊(公司名、地址、薪資、福利待遇等...) return response['content']['positionResult'] return None
解析程式碼
python_job = [] # 公司全名 python_job.append(j['companyFullName']) # 公司簡稱 python_job.append(j['companyShortName']) # 公司規模 python_job.append(j['companySize']) # 融資 python_job.append(j['financeStage']) # 所屬區域 python_job.append(j['district']) # 職稱 python_job.append(j['positionName']) # 要求工作年限 python_job.append(j['workYear']) # 招聘學歷 python_job.append(j['education']) # 薪資範圍 python_job.append(j['salary']) # 福利待遇 python_job.append(j['positionAdvantage'])
資料分析
- 福利待遇詞雲
福利
- 北京各區縣職位熱力
北京市部分割槽域python職位分佈 .png
- 工資分佈直方圖
工資範圍分佈
缺陷
- 資料處理和清洗的比較粗糙
- 部分資料還沒有想到比較好的表徵(大佬們可以多提建議)
- 關於程式碼和資料有需要可以私信。