前言
本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。
分析背景
隨着近年來人工智能和大數據的火熱,越來越多的人想要從事或轉行數據分析師,大家對於此行業如此的熱愛,主要原因就是薪資客觀,有發展前景。
以我淺薄的工作經驗,來談談對數據分析師的看法,此行業一直存在一個爭議,到底是工具重要還是業務水平重要,即工具黨和業務黨,先站隊,我是業務黨(以前是工具黨)。雖然我大部分時間都在做數據處理工作,這個能力也是必須的,無論是簡單的EXCEL,SQL,PPT還是複雜的R,Python,finebi,finereport,HIve都有涉及,但是市面上有太多的分析工具,你不能全部掌握完,而各行業的業務知識是基本相同的。一個業務知識經驗的數據分析師看見一堆數據,會清楚地知道從什麼角度來分析,數據呈現狀況如何,數據是否異常,出現異常原因在那,數據可以解決那些問題,數據適用於那些場景,他會有一個完整的數據分析思路。所以說一個合格的數據分析師是能從一堆數據中找出有價值的信息。
回到正題,數據分析的‘錢’景到底如何呢,本文將從BOOS招聘網站上近期招聘的數據分析師崗位來進行分析,涉及到工作城市,工作經驗,薪資水平,技能要求等內容。
數據分析
本次獲取的崗位數據量爲17485,只保留數據分析崗位的數據量爲5616,,本次數據工具爲selenium,分析的工具爲pandas,繪圖工具爲pyecharts,數據的最終呈現形式爲
綜合今年的招聘市場需求考慮,本次對於數據分析師崗位的分析,將從以下幾點進行
- 崗位所在城市
- 學歷要求
- 工作年限要求
- 薪資分佈
- 數據分析師崗位技能要求
- 主要招聘行業
- 主要招聘公司
- 招聘公司福利展示
1、崗位所在城市
由於數據分析師崗位的特殊,分析城市主要集中在一線和新一線城市,可以看出招聘需求最高的是北上廣浙,其他新一線城市對於此崗位需求不大,不過隨着經濟的發展,大多數公司對於數據的需求就會變大,相應的崗位需求就會變多
2、學歷要求
從學歷要求上可以看出,對於數據分析師本科學歷佔比達到77.66%
3、工作年限要求
從工作年限要求來看,數據分析師崗位對於從事此工作1-5年的人來說比較受歡迎,整體呈現一種正態分佈的狀態。
4、薪資分佈
從薪資上來看,本次對於薪資的處理主要是從薪資空間中取最大,最小兩個值(例如8-15k,取值爲8k和15k),薪資分佈出現略高情況,爲避免新一線城市被一線城市平均化,將對比上海和鄭州兩個城市,額........,下圖已經可以說明問題了
5、數據分析師崗位技能要求
對於技能要求來說,出現頻率最多的是數據挖掘、數據分析、python、數據倉庫、商業分析、HIVE、大數據等詞。可以看出數據分析師對於數據分析工具和業務水平都比較看重。
6、主要招聘行業
從招聘行業來看,需求最大的是互聯網、電子商務、數據服務、金融等行業,主要原因是這些行業會產生大量的數據。人口紅利已過,下沉市場都被攻略,現在都在講究精細化運營,所以對於互聯網行業來說,每一個用戶都變得非常重要,而數字化用戶可以更優的運營,所以這些行業對於數據分析師的崗位需求非常大,以後會更大
7、主要招聘公司
招聘需求最多的還是大公司
8、招聘公司福利展示
大多數公司的福利都是五險一金和帶薪年假,節日福利等,不過這5616招聘公司中有860個是沒有福利的,還看到做六休一是公司福利,996都變成福報了,看來對於任何行業來說,打工都是有風險的。打工是不可能打工的,只能另謀出路了 (附:職業規劃)
數據抓取
數據來源爲BOOS直聘招聘網站,對於BOOS網站主要的反爬措施是動態cookie,主要是Cookie加密字段__zp_stoken__逆向解密,我沒搞定。。。,只能使用selenium自動化爬取了,反正數據搞下來了,O(∩_∩)O哈哈~
代碼展示:
from selenium import webdriver
import time
from urllib import parse
import string
from lxml import etree
import csv
def get_parse(driver):
htmls=driver.page_source
html=etree.HTML(htmls)
items = html.xpath('//div[@class="job-list"]/ul/li')
D=[]
try:
for item in items:
zhiwei=item.xpath('.//div[@class="job-title"]/span[@class="job-name"]/a/text()')[0]
diliweizhi = item.xpath('.//span[@class="job-area"]/text()')[0]
xinzi = item.xpath('.//span[@class="red"]/text()')[0]
gongzuonianxian = item.xpath('.//div[@class="job-limit clearfix"]/p/text()')[0]
xueli = item.xpath('.//div[@class="job-limit clearfix"]/p/text()')[1]
yaoqiu = item.xpath('.//div[@class="tags"]/span/text()')[0]
yaoqiu1 = item.xpath('.//div[@class="tags"]/span/text()')[1]
try:
yaoqiu2 = item.xpath('.//div[@class="tags"]/span/text()')[2]
except:
yaoqiu2=' '
try:
yaoqiu3 = item.xpath('.//div[@class="tags"]/span/text()')[3]
except:
yaoqiu3 = ' '
try:
yaoqiu4 = item.xpath('.//div[@class="tags"]/span/text()')[4]
except:
yaoqiu4=' '
gongsi = item.xpath('.//div[@class="company-text"]/h3/a/text()')[0]
try:
hangye = item.xpath('.//div[@class="company-text"]/p/a/text()')[0]
except:
pass
try:
gongsidaxiao1 = item.xpath('.//div[@class="company-text"]/p/text()')[0]
except:
gongsidaxiao1=' '
try:
gongsidaxiao2 = item.xpath('.//div[@class="company-text"]/p/text()')[1]
except:
gongsidaxiao2=' '
try:
fuli = item.xpath('.//div[@class="info-desc"]/text()')[0]
except:
fuli=' '
print(zhiwei, diliweizhi, xinzi, gongzuonianxian, xueli, yaoqiu,yaoqiu1,yaoqiu2,yaoqiu3,yaoqiu4, gongsi, hangye, gongsidaxiao1,gongsidaxiao2,fuli)
data=[zhiwei, diliweizhi, xinzi, gongzuonianxian, xueli, yaoqiu,yaoqiu1,yaoqiu2,yaoqiu3,yaoqiu4, gongsi, hangye, gongsidaxiao1,gongsidaxiao2,fuli]
D.append(data)
except:
pass
save(D)
def save(data):
with open('./boss2.csv','a',newline='',encoding='utf-8')as f:
writer=csv.writer(f)
writer.writerows(data)
def main():
header=['職位','區域','薪資','工作年限','學歷要求','技能要求1','技能要求2','技能要求3','技能要求4','技能要求5','公司名稱','行業','公司狀況','公司大小','福利']
with open('./boss2.csv', 'a', newline='', encoding='utf-8')as f:
writer = csv.writer(f)
writer.writerow(header)
chromedriver_path='C:/Users/10489/Desktop/chromedriver_win32/chromedriver.exe'
# 使用chrome驅動器
options = webdriver.ChromeOptions()
# 設置爲開發者模式,防止被各大網站識別出來使用了Selenium
options.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = webdriver.Chrome(executable_path=chromedriver_path, options=options)
a='數據分析師'
position=parse.quote(a, safe=string.printable)
# 北京、上海、廣州、深圳、杭州、天津、西安、蘇州、武漢、廈門、長沙、成都、鄭州、重慶
city=['101010100','101020100','101280100','101280600','101210100','101030100','101110100','101190400','101200100','101230200','101250100','101270100','101180100','101040100']
for j in city:
# 應屆生、1年以內、1-3年、3-5年、5-10年、10年以上
# https://www.zhipin.com/c101020100/e_103/?query={}&ka=sel-exp-102
# https://www.zhipin.com/c101020100/e_103/?query={}&ka=sel-exp-103
# https://www.zhipin.com/c101020100/e_103/?query={}&ka=sel-exp-104
# https://www.zhipin.com/c101020100/e_103/?query={}&ka=sel-exp-105
# https://www.zhipin.com/c101020100/e_103/?query={}&ka=sel-exp-106
# https://www.zhipin.com/c101020100/e_103/?query={}&ka=sel-exp-107
for i in range(2,8):
driver.get('https://www.zhipin.com/c{}/e_10{}/?query={}&ka=sel-exp-10{}'.format(j,i,position,i))
# driver.get('https://www.zhipin.com/job_detail/?query={}&city=101020100&industry=&position='.format(position))
driver.maximize_window()
time.sleep(10)
get_parse(driver)
try:
while True:
time.sleep(5)
driver.execute_script("window.scrollTo(0,6000)")
time.sleep(10)
driver.find_element_by_xpath('//a[@class="next"]').click()
get_parse(driver)
except:
pass
if __name__ == '__main__':
main()
歡迎點擊左上角關注小編,除了分享技術文章之外還有很多福利,私信學習資料可以領取包括不限於Python實戰演練、PDF電子文檔、面試集錦、學習資料等。