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

視頻html

PPT+ 視頻python

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

項目代碼:https://github.com/nicksors/JobAnalysisgithub

前言

近年來 Python 之火你們都有感而知,那親們知道北京的 Python 開發崗位、運維開發崗位招聘地域都是如何分佈的嗎?薪水如何?是否有前景等等,這些數據呢直接經過招聘信息來了解到企業用人是最直接的,也是最簡單的途徑。json

那本次將經過分享 Python 來抓取拉鉤的招聘信息,而後加以分析,作一個北京的 Python 職位地域分佈、薪資範圍、福利待遇等維度出一個簡單的分析報告,但願能幫助到想在 Python 這片田地耕耘的童鞋在發展方向上有所參考。運維

使用到的工具

使用 Python 的 requests 工具到招聘網站爬取咱們想要的數據,分析和可視化也使用 Python 的相關模塊來實現,主要有以下:
Python 版本:Python 3.x
requests:發起請求,從網站抓取數據
math:數學運算函數,向上取整,這裏主要用於分析數據
time:時間模塊,主要是控制爬蟲不會由於頻繁請求而被網站拉進小黑屋
pandas:數據抓取後使用該模塊保存爲 csv 文件到本地
matplotlib:可視化畫圖
pylab:設置畫圖能顯示中文
wordcloud、scipy、jieba(字符串分割成單詞):生成中文詞雲ide

如何進行數據抓取

使用 Chrome 打開拉鉤網站,在網站輸入「Python開發」 職位,使用 「檢查」 功能查看網頁源碼。發現拉鉤有反爬機制,職位信息並不在源代碼裏,而是在 JSON 文件裏,所以直接經過 JSON 獲取數據便可。
資料分享—— Python 分析拉鉤職位函數

抓取信息時,須要加上頭部信息,才能獲取到數據。(原理很簡單:你得假裝成一個 正常的 client 去請求網頁才能拿到想要的數據)工具

def get_json(url, num):
   '''從網頁獲取JSON,使用POST請求,加上頭部信息'''
   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開發'}
   res = requests.post(url, headers=headers, data=data)
   res.raise_for_status()
   res.encoding = 'utf-8'
   # 獲得包含職位信息的字典
   page = res.json()
   return page

在搜索結果的第一頁,咱們能夠從 JSON 裏讀取總職位數,按照每頁15個職位,得到要爬取的頁數。再使用循環按頁爬取,將職位信息彙總,輸出爲 CSV 格式。post

序運行以下:
資料分享—— Python 分析拉鉤職位

抓取結果以下:
資料分享—— Python 分析拉鉤職位

數據可視化畫圖展現

一、根據薪資製做直方圖

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

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

二、根據崗位地域分佈製做餅圖

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

三、製做詞雲

將職位福利這一列數據進行彙總,按照詞語出現的頻率生成雲詞實現 Python 可視化,如下是原圖和雲詞圖對比:
資料分享—— Python 分析拉鉤職位

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

相關文章
相關標籤/搜索