周末日常數(shù)據(jù)處理學(xué)習(xí),心血來潮對(duì)拉勾關(guān)于Python職位招聘表示很感興趣,所以拿點(diǎn)數(shù)據(jù)作為學(xué)習(xí)和實(shí)踐。
獲取字段:
- 職位名稱
- 公司名稱
- 工資待遇
- 工作經(jīng)驗(yàn)
- 學(xué)歷要求
數(shù)據(jù)獲取思路:
模擬人為瀏覽網(wǎng)頁行為,添加header、加大延時(shí)(如果頻繁獲取會(huì)出現(xiàn)403,不過很快解禁)、添加代理(現(xiàn)在代理網(wǎng)站都不咋的,用那么幾下就error;各位大牛有好網(wǎng)站可推薦哦)。分析網(wǎng)頁結(jié)構(gòu),借助html自帶標(biāo)簽和各字段class采用css方式解析需要字段。
數(shù)據(jù)獲取代碼
# post請(qǐng)求參數(shù)
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
}
# 請(qǐng)求的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()
# 請(qǐng)求響應(yīng)中的positionResult 包括查詢總數(shù) 以及該頁的招聘信息(公司名、地址、薪資、福利待遇等...)
return response['content']['positionResult']
return None
解析代碼
python_job = []
# 公司全名
python_job.append(j['companyFullName'])
# 公司簡稱
python_job.append(j['companyShortName'])
# 公司規(guī)模
python_job.append(j['companySize'])
# 融資
python_job.append(j['financeStage'])
# 所屬區(qū)域
python_job.append(j['district'])
# 職稱
python_job.append(j['positionName'])
# 要求工作年限
python_job.append(j['workYear'])
# 招聘學(xué)歷
python_job.append(j['education'])
# 薪資范圍
python_job.append(j['salary'])
# 福利待遇
python_job.append(j['positionAdvantage'])
數(shù)據(jù)分析
-
福利待遇詞云
福利
感覺行業(yè)最大的福利彈性,一種很帥的福利(就是那種可以無限彈的機(jī)制) -
北京各區(qū)縣職位熱力
北京市部分區(qū)域python職位分布 .png
大海淀的職位需求還是很高的,以后找工作也可以往海淀扎扎堆,也許你的心儀公司就在這也說不定。 -
工資分布直方圖
工資范圍分布
缺陷
- 數(shù)據(jù)處理和清洗的比較粗糙
- 部分?jǐn)?shù)據(jù)還沒有想到比較好的表征(大佬們可以多提建議)
- 關(guān)于代碼和數(shù)據(jù)有需要可以私信。


