會Python薪資可達50K!爬蟲實戰看看我們真的「前程無憂」嗎?

2021-03-02 愛數據原統計網

利用python爬取在前程無憂網搜索python關鍵字出現的最新的招聘數據,保存到本地Excel,進行數據查看和預處理,然後利用matplotlib進行數據分析和可視化


目標url:https://www.51job.com/

在前程無憂網輸入關鍵字python,搜索有關的崗位數據。翻頁查看這些招聘崗位信息,可以發現url翻頁的規律。

async def parse(self, text):
        # 正則匹配提取數據
        try:
            job_name = re.findall('"job_name":"(.*?)",', text) # 職位
            company_name = re.findall('"company_name":"(.*?)",', text) # 公司名稱
            salary = re.findall('"providesalary_text":"(.*?)",', text)
            salary = [i.replace('\\', '') for i in salary] # 薪酬 去掉 \ 符號
            city = re.findall('"workarea_text":"(.*?)",', text) # 城市
            job_welfare = re.findall('"jobwelf":"(.*?)",', text) # 職位福利
            attribute_text = re.findall('"attribute_text":(.*?),"companysize_text"', text)
            attribute_text = ['|'.join(eval(i)) for i in attribute_text]
            companysize = re.findall('"companysize_text":"(.*?)",', text) # 公司規模
            category = re.findall('"companyind_text":"(.*?)",', text)
            category = [i.replace('\\', '') for i in category] # 公司所屬行業 去掉 \ 符號
            datas = pd.DataFrame({'company_name': company_name, 'job_name': job_name, 'companysize': companysize, 'city': city, 'salary': salary, 'attribute_text': attribute_text, 'category': category, 'job_welfare': job_welfare})
            datas.to_csv('job_info.csv', mode='a+', index=False, header=True)
            logging.info({'company_name': company_name, 'job_name': job_name, 'company_size': companysize, 'city': city, 'salary': salary, 'attribute_text': attribute_text, 'category': category, 'job_welfare': job_welfare})
        except Exception as e:
            print(e)

爬取了200頁的招聘數據,共10000條招聘信息,用時49.919s


import pandas as pd

df = pd.read_csv('job_info.csv')
# 異步爬蟲爬取數據時 datas.to_csv('job_info.csv', mode='a+', index=False, header=True) 刪除多的列名
df1 = df[df['salary'] != 'salary']
# 查看前10行
df1.head(10)

# city那一列數據 處理為城市

# 按 - 分割 expand=True 0那一列重新賦值給df['city']
df1['city'] = df1['city'].str.split('-', expand=True)[0]

df1.head(10)

# 經驗要求 學歷要求 有的話是在attribute_text列裡

df['attribute_text'].str.split('|', expand=True)

df1['experience'] = df1['attribute_text'].str.split('|', expand=True)[1]
df1['education'] = df1['attribute_text'].str.split('|', expand=True)[2]
df1

df1.to_csv('已清洗數據.csv', index=False)

df2 = pd.read_csv('已清洗數據.csv')
df2.info()


1.  柱形圖展示招聘崗位數最多的城市Top10

import pandas as pd
import random
import matplotlib.pyplot as plt
import matplotlib as mpl

df = pd.read_csv('已清洗數據.csv')
# 有些是異地招聘 過濾掉
data = df[df['city'] != '異地招聘']['city'].value_counts()
city = list(data.index)[:10] # 城市
nums = list(data.values)[:10] # 崗位數
print(city)
print(nums)

colors = ['#FF0000', '#0000CD', '#00BFFF', '#008000', '#FF1493', '#FFD700', '#FF4500', '#00FA9A', '#191970', '#9932CC']
random.shuffle(colors)

# 設置大小 像素
plt.figure(figsize=(9, 6), dpi=100)
# 設置中文顯示
mpl.rcParams['font.family'] = 'SimHei'
# 繪製柱形圖 設置柱條的寬度和顏色
# color參數 每根柱條配置不同顏色
plt.bar(city, nums, width=0.5, color=colors)

# 添加描述信息
plt.title('招聘崗位數最多的城市Top10', fontsize=16)
plt.xlabel('城市', fontsize=12)
plt.ylabel('崗位數', fontsize=12)

# 展示圖片
plt.show()

['上海', '深圳', '廣州', '北京', '杭州', '成都', '武漢', '南京', '蘇州', '長沙']

[2015, 1359, 999, 674, 550, 466, 457, 444, 320, 211]

上海、深圳、廣州、北京提供了很多崗位,杭州、成都、武漢、南京等城市的招聘崗位數量也比較可觀。2. 計算崗位數據的薪酬,處理為多少K/月,劃分薪酬區間,統計薪酬分布情況,餅圖展示

# 設置中文顯示
mpl.rcParams['font.family'] = 'SimHei'
# 設置大小 像素
plt.figure(figsize=(9, 6), dpi=100)
plt.axes(aspect='equal') # 保證餅圖是個正圓
explodes = [0, 0, 0, 0.1, 0.2, 0.3, 0.4, 0.5]
plt.pie(nums, pctdistance=0.75, shadow=True,
  colors=colors, autopct='%.2f%%', explode=explodes,
  startangle=15, labeldistance=1.1,
  )

# 設置圖例 調節圖例位置
plt.legend(part_interval, bbox_to_anchor=(1.0, 1.0))
plt.title('招聘崗位的薪酬分布', fontsize=15)

plt.show()


招聘崗位給的薪酬在5K-10K10K-15K區間所佔的比例較大,也有一定比例的50K以上的高薪資崗位。3. 查看招聘崗位對學歷的要求的情況,水平柱形圖可視化

mport pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl


df = pd.read_csv(r'已清洗數據.csv')['education']
data = df.value_counts()

labels = ['大專', '本科', '碩士', '博士']
nums = [data[i] for i in labels]
print(labels)
print(nums)

colors = ['cyan', 'red', 'yellow', 'blue']
# 設置中文顯示
mpl.rcParams['font.family'] = 'SimHei'
# 設置顯示風格
plt.style.use('ggplot')
# 設置大小 像素
plt.figure(figsize=(8, 6), dpi=100)
# 繪製水平柱狀圖
plt.barh(labels, nums, height=0.36, color=colors)
plt.title('招聘崗位對學歷的要求', fontsize=16)
plt.xlabel('崗位數量', fontsize=12)
plt.show()

['大專', '本科', '碩士', '博士']

[2052, 6513, 761, 45]

4. 查看招聘崗位對工作經驗的要求的情況,水平柱形圖可視化由於得到的工作經驗列裡的數據並不規範,統計時需做特殊處理

# 設置中文顯示
mpl.rcParams['font.family'] = 'SimHei'
# 設置顯示風格
plt.style.use('ggplot')
# 設置大小 像素
plt.figure(figsize=(9, 6), dpi=100)
# 繪製水平柱狀圖
plt.barh(labels, nums, height=0.5, color=colors)
plt.title('招聘崗位對工作經驗的要求', fontsize=16)
plt.xlabel('崗位數量', fontsize=12)

plt.show()

3-4年經驗 3361
2年經驗 2114
1年經驗 1471
5-7年經驗 1338
在校生\/應屆生 661
無需經驗 417
本科 182
8-9年經驗 105
10年以上經驗 64
碩士 59
招1人 57
招若干人 57
招2人 42
大專 30
招3人 14
博士 11
招5人 9
招4人 5
招10人 2
招7人 1
Name: experience, dtype: int64
['無需經驗', '1年經驗', '2年經驗', '3-4年經驗', '5-7年經驗', '8-9年經驗', '10年以上經驗']

[1260, 1530, 2114, 3372, 1338, 105, 64]

import pandas as pd
import collections
from wordcloud import WordCloud
import matplotlib.pyplot as plt


df = pd.read_csv(r'已清洗數據.csv')['category']
data = list(df.values)


word_list = []
for i in data:
    x = i.split('/')
    for j in x:
        word_list.append(j)

word_counts = collections.Counter(word_list)

# 繪製詞雲
my_cloud = WordCloud(
    background_color='white', # 設置背景顏色 默認是black
    width=900, height=500,
    font_path='simhei.ttf', # 設置字體 顯示中文
    max_font_size=120, # 設置字體最大值
    min_font_size=15, # 設置子圖最小值
    random_state=60            # 設置隨機生成狀態,即多少種配色方案
).generate_from_frequencies(word_counts)

# 顯示生成的詞雲圖片
plt.imshow(my_cloud, interpolation='bilinear')
# 顯示設置詞雲圖中無坐標軸
plt.axis('off')

plt.show()


6. 查看招聘崗位的職位福利,詞雲展示

代碼與上文一致

運行效果如下:


職位福利關鍵詞中出現頻率較高的有五險一金年終獎金績效獎金定期體檢餐飲補貼等。

本文為轉載分享&推薦閱讀,若侵權請聯繫後臺刪除

相關焦點

  • 從零開始的python爬蟲速成指南
    小夥伴感興趣可以自取~此外,我這還有兩本比較經典的python爬蟲電子書,在微信公眾號【輪子工廠】後臺回復 」爬蟲」 可以領取。Python爬蟲入門七之正則表達式二、爬蟲實戰Python爬蟲實戰一之爬取糗事百科段子Python爬蟲實戰二之爬取百度貼吧帖子Python爬蟲實戰三之實現山東大學無線網絡掉線自動重連Python爬蟲實戰四之抓取淘寶MM照片Python爬蟲實戰五之模擬登錄淘寶並獲取所有訂單Python
  • 用python爬取前程無憂網,看看我們是否真的「前程無憂」?
    利用python爬取在前程無憂網搜索python關鍵字出現的最新的招聘數據,保存到本地Excel,進行數據查看和預處理,然後利用matplotlib進行數據分析和可視化。1.爬取數據目標url:https://www.51job.com/在前程無憂網輸入關鍵字python,搜索有關的崗位數據。翻頁查看這些招聘崗位信息,可以發現url翻頁的規律。檢查網頁原始碼,可以找到想要提取的數據。
  • 開課吧Python:Python爬蟲是什麼?爬蟲工程師薪資怎麼樣?
    為什麼總說爬蟲,找工作容易,工資還高,但是他們是什麼,能做什麼!你知道嗎?繼續往下看吧,我來告訴你答案。這個時候你會怎麼做?手動上Ctrl+C和Ctrl+V?這個方法是對的。在數據量很小的情況下我們還是可以這樣做的,但是在數據數千的情況下你還是要這樣做嗎?爬蟲技術可以輕鬆解決問題。我們可以看到爬蟲技術主要可以幫助我們做兩種事情:一種是對數據採集的需求,主要針對特定規則下的大量數據的信息採集;另一個是自動化需求,主要用於信息聚合和搜索。
  • python爬蟲是什麼?薪資怎麼這麼高,需求量這麼大?
    如果交給爬蟲,只需運行代碼,這隻蜘蛛就會按照你的需求去自動爬取你需要的上千條數據十個爬蟲九個是用python寫的,相比其它語言,python能夠幹得最快、最乾淨,比如搜尋引擎對站點進行爬取收錄;數據分析與挖掘對數據進行採集;金融分析對金融數據進行採集等等,除此之外,還可以將爬蟲應用於輿情監測與分析、目標客戶數據收集等各個領域,
  • 如何爬取全網1200本Python書|爬蟲實戰篇
    這是菜鳥學Python的第98篇原創文章閱讀本文大概需要3分鐘    前面寫了一篇文章關於爬取市面上所有的Python書思路,這也算是我們數據分析系列講座裡面的一個小的實戰項目。1).上面我們已經提取了93個頁面的所有的Python書和對應的url,一共是93*15大概1300多本書,首先先去重,然後我們可以把它存到內存裡面用一個字典保存
  • 適合新手學習的Python爬蟲書籍
    教程」關注我們喲!第二部分介紹如何用網絡爬蟲測試網站,自動化處理,以及如何通過更多的方式接入網絡。精通Python網絡爬蟲:核心技術、框架與項目實戰本書從技術、工具與實戰3個維度講解了Python網絡爬蟲:技術維度:詳細講解了Python網絡爬蟲實現的核心技術,包括網絡爬蟲的工作原理、如何用urllib庫編寫網絡爬蟲、爬蟲的異常處理、正則表達式、爬蟲中Cookie的使用
  • Python開發簡單爬蟲【學習資料總結】
    ;另一方面,會將新的URL補充進URL管理器,若有URL管理器中含有新的URL,則重複上述步驟,直到爬取完所有的URL 6、最後,調度器會調動應用的方法,將價值數據輸出到需要的格式。
  • python實踐:利用爬蟲刷網課
    前言:用過python的人應該都會知道爬蟲這個東西,網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取全球資訊網信息的程序或者腳本。今天就來講講如何利用爬蟲技術刷網課。實戰:最近學校又推送了一波網課,一個一個的看實在太費時間,於是乎就想到了爬蟲來自動刷網課。
  • Python+人工智慧月入高達50K?Python 工程師薪資再創新高
    小編統計了一下下面python可以做的崗位薪資待遇供大家參考。現在,Python開發者的薪酬根本都是在15K以上,並且它的漲幅不知道為什麼高的離譜,能夠達到50%的漲幅,而Java的薪酬封頂也就是30000左右,而Python卻能夠漲到最好50K,因為Python這個語言今後的發展前景非常可觀,尤其是稀缺人才,類似於之前的IOS開發。
  • Python爬蟲之urllib庫—爬蟲的第一步
    首先不得不提一下爬取數據的過程,弄清楚這到底是怎樣一個過程,學習urllib的時候會更方便理解。  其實,爬蟲的過程和瀏覽器瀏覽網頁的過程是一樣的。道理大家應該都明白,就是當我們在鍵盤上輸入網址點擊搜索之後,通過網絡首先會經過DNS伺服器,分析網址的域名,找到了真正的伺服器。
  • 前程無憂發布《2018年51JOB的新興崗位推薦》
    導讀:基於一季度招聘供需調查,近日前程無憂發布「2018年51JOB的新興崗位推薦」,其中內外飾工程師、大數據分析/開發、新媒體運營、前介工程師等成四大熱門待招崗位。中國最大的人力資源服務商前程無憂(NASDAQ: JOBS)今天發布《2018年51JOB的新興崗位推薦》。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    scrapy框架及案例 21數據分析 22機器學習 23深度學習 24數據結構和算法 25python網絡爬蟲 26機器學習入門篇 27機器學習入門篇2 28機器學習提升篇 29數據挖掘篇 30深度學習必備原理與實戰 31深度學習必備原理與實戰2
  • Python爬蟲學到什麼程度就可以去找工作了?
    有朋友在群裡和大家討論,問的最多的問題就是,python 爬蟲學到什麼程度可以去找工作了,關於這點,和大家分享下我的理解。確立目標、了解需求首先我們要先定位自己的目標,當然我們先以爬蟲工程師來做個說明。
  • python爬蟲入門實戰!爬取博客文章標題和連結!
    最近有小夥伴和我留言想學python爬蟲,那麼就搞起來吧。準備階段爬蟲有什麼用呢?舉個最簡單的小例子,你需要《戰狼2》的所有豆瓣影評。最先想的做法可能是打開瀏覽器,進入該網站,找到評論,一個一個複製到文本中,保存,翻頁,接著複製,直到翻到最後一頁。
  • 前程無憂了?51job告訴你95後為何愛辭職
    應屆生高離職率是常態 並非真的前程無憂 前程無憂(http://www.51job.com)無憂指數一項調查顯示,應屆生(工作年限1年以內)普遍呈現出相較於工作年限3年以上更加強烈的辭職傾向。由此分析,造成企業初級員工高離職率的原因,並非因為他們是90後,或者95後,而是因為他們是應屆生。這是職場新人的一種常態。
  • 前程無憂Q2財報:淨利潤暴漲458%,這次真的「無憂」了嗎?
    北京時間8月11日凌晨,中國綜合人力資源服務提供商——前程無憂公布了截至2020年6月30日的2020年第二季度的業績報告。此份財報的發布是在周一美股盤後,截至當日收盤,前程無憂每股報70.29美元,總市值約為47億美元。
  • Python爬蟲實戰教程——爬取xkcd漫畫
    0 前言Python版本:3.7.0開發工具:IDLE(Python 3.7 64-bit)、Google Chrome1 網絡爬蟲(web crawler)?網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人),是一種按照一定的規則,自動地抓取網絡信息的程序或者腳本。
  • 超適合Python小白的乾貨,Python數據分析50個實戰項目
    1.網際網路寒冬下,數據分析師還吃香嗎?11.貓眼電影爬蟲及分析12.漫威電影宇宙英雄綜合實力對比分析13.20 秒看懂中國大學 10 年排行榜變化14.航空公司客戶價值分析15.電子商務網站用戶行為分析及服務推薦16.關於地震的爬蟲數據分析實戰17.保險公司客戶分類分析18.金融產品銷售預測分析19.共享單車租用影響因素探索
  • 如何快速學會Python爬蟲(入門篇)
    Python爬蟲入門七之正則表達式二、爬蟲實戰Python爬蟲實戰一之爬取糗事百科段子2.Python爬蟲實戰二之爬取百度貼吧帖子3. Python爬蟲實戰三之實現山東大學無線網絡掉線自動重連4. Python爬蟲實戰四之抓取淘寶MM照片5. Python爬蟲實戰五之模擬登錄淘寶並獲取所有訂單6.
  • python全棧+爬蟲+自動化+AI=python全能工程師-挑戰年薪30W+
    據統計,現在初中級python工程師的起薪一般在10-20K。 Python工程師就業環境 目前網際網路企業包括騰訊、百度、阿里、滴滴、豆瓣等早已經開始做Python人才儲備布局,並且,各大技術企業也開始高薪招聘各類Python技術人才。