溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

資料分享—— Python 分析拉鉤職位

發(fā)布時(shí)間:2020-07-01 14:22:11 來(lái)源:網(wǎng)絡(luò) 閱讀:429 作者:xjtuhit 欄目:編程語(yǔ)言

視頻

PPT+ 視頻

鏈接: https://pan.baidu.com/s/1tzG1adgpn23TSKvnR6XmYg 提取碼: 2p2t

項(xiàng)目代碼:https://github.com/nicksors/JobAnalysis

前言

近年來(lái) Python 之火大家都有感而知,那親們知道北京的 Python 開(kāi)發(fā)崗位、運(yùn)維開(kāi)發(fā)崗位招聘地域都是如何分布的嗎?薪水如何?是否有前景等等,這些數(shù)據(jù)呢直接通過(guò)招聘信息來(lái)了解到企業(yè)用人是最直接的,也是最簡(jiǎn)單的途徑。

那本次將通過(guò)分享 Python 來(lái)抓取拉鉤的招聘信息,然后加以分析,做一個(gè)北京的 Python 職位地域分布、薪資范圍、福利待遇等維度出一個(gè)簡(jiǎn)單的分析報(bào)告,希望能幫助到想在 Python 這片田地耕耘的童鞋在發(fā)展方向上有所參考。

使用到的工具

使用 Python 的 requests 工具到招聘網(wǎng)站爬取我們想要的數(shù)據(jù),分析和可視化也使用 Python 的相關(guān)模塊來(lái)實(shí)現(xiàn),主要有如下:
Python 版本:Python 3.x
requests:發(fā)起請(qǐng)求,從網(wǎng)站抓取數(shù)據(jù)
math:數(shù)學(xué)運(yùn)算函數(shù),向上取整,這里主要用于分析數(shù)據(jù)
time:時(shí)間模塊,主要是控制爬蟲不會(huì)因?yàn)轭l繁請(qǐng)求而被網(wǎng)站拉進(jìn)小黑屋
pandas:數(shù)據(jù)抓取后使用該模塊保存為 csv 文件到本地
matplotlib:可視化畫圖
pylab:設(shè)置畫圖能顯示中文
wordcloud、scipy、jieba(字符串分割成單詞):生成中文詞云

如何進(jìn)行數(shù)據(jù)抓取

使用 Chrome 打開(kāi)拉鉤網(wǎng)站,在網(wǎng)站輸入“Python開(kāi)發(fā)” 職位,使用 “檢查” 功能查看網(wǎng)頁(yè)源碼。發(fā)現(xiàn)拉鉤有反爬機(jī)制,職位信息并不在源代碼里,而是在 JSON 文件里,因此直接通過(guò) JSON 獲取數(shù)據(jù)即可。
資料分享—— Python 分析拉鉤職位

抓取信息時(shí),需要加上頭部信息,才能獲取到數(shù)據(jù)。(原理很簡(jiǎn)單:你得偽裝成一個(gè) 正常的 client 去請(qǐng)求網(wǎng)頁(yè)才能拿到想要的數(shù)據(jù))


def get_json(url, num):
   '''從網(wǎng)頁(yè)獲取JSON,使用POST請(qǐng)求,加上頭部信息'''
   headers = {
       'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36',
       'Host': 'www.lagou.com',

     'Referer':'https://www.lagou.com/jobs/list_python%E5%BC%80%E5%8F%91?labelWords=&;fromSearch=true&suginput=',
       'X-Anit-Forge-Code': '0',
     'X-Anit-Forge-Token': 'None',
     'X-Requested-With': 'XMLHttpRequest'
   }

   data = {
       'first': 'true',
       'pn': num,
       'kd': 'Python開(kāi)發(fā)'}
   res = requests.post(url, headers=headers, data=data)
   res.raise_for_status()
   res.encoding = 'utf-8'
   # 得到包含職位信息的字典
   page = res.json()
   return page

在搜索結(jié)果的第一頁(yè),我們可以從 JSON 里讀取總職位數(shù),按照每頁(yè)15個(gè)職位,獲得要爬取的頁(yè)數(shù)。再使用循環(huán)按頁(yè)爬取,將職位信息匯總,輸出為 CSV 格式。

序運(yùn)行如下:
資料分享—— Python 分析拉鉤職位

抓取結(jié)果如下:
資料分享—— Python 分析拉鉤職位

數(shù)據(jù)可視化畫圖展示

1、根據(jù)薪資制作直方圖

薪資比例描述和可視化出圖
資料分享—— Python 分析拉鉤職位

資料分享—— Python 分析拉鉤職位

2、根據(jù)崗位地域分布制作餅圖

資料分享—— Python 分析拉鉤職位

3、制作詞云

將職位福利這一列數(shù)據(jù)進(jìn)行匯總,按照詞語(yǔ)出現(xiàn)的頻率生成云詞實(shí)現(xiàn) Python 可視化,以下是原圖和云詞圖對(duì)比:
資料分享—— Python 分析拉鉤職位

Python 第20期入門班正在火熱招生中

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI