商城網(wǎng)站如何建設方案草根seo視頻大全
本文以Python爬蟲、數(shù)據(jù)分析、后端、數(shù)據(jù)挖掘、全棧開發(fā)、運維開發(fā)、高級開發(fā)工程師、大數(shù)據(jù)、機器學習、架構(gòu)師這10個崗位,從拉勾網(wǎng)上爬取了相應的職位信息和任職要求,并通過數(shù)據(jù)分析可視化,直觀地展示了這10個職位的平均薪資和學歷、工作經(jīng)驗要求。
文章很長,耐心觀看。
01
爬蟲準備
1、先獲取薪資和學歷、工作經(jīng)驗要求
由于某網(wǎng)數(shù)據(jù)加載是動態(tài)加載的,需要我們分析。分析方法如下:
我們發(fā)現(xiàn)網(wǎng)頁內(nèi)容是通過post請求得到的,返回數(shù)據(jù)是json格式,那我們直接拿到json數(shù)據(jù)即可。
我們只需要薪資和學歷、工作經(jīng)驗還有單個招聘信息,返回json數(shù)據(jù)字典中對應的英文為:positionId,salary, education, workYear(positionId為單個招聘信息詳情頁面編號)。相關操作代碼如下:
- 文件存儲:
def file_do(list_info):# 獲取文件大小file_size = os.path.getsize(r'G:\lagou_anv.csv')if file_size == 0:# 表頭name = ['ID','薪資', '學歷要求', '工作經(jīng)驗']# 建立DataFrame對象file_test = pd.DataFrame(columns=name, data=list_info)# 數(shù)據(jù)寫入file_test.to_csv(r'G:\lagou_anv.csv', encoding='gbk', index=False)else:with open(r'G:\lagou_anv.csv', 'a+', newline='') as file_test:# 追加到文件后面writer = csv.writer(file_test)# 寫入文件writer.writerows(list_info)
- 基本數(shù)據(jù)獲取:
# 1. post 請求 url
req_url = 'https://www.lagou.com/jobs/positionAjax.json?needAddtionalResult=false'
# 2.請求頭 headers
headers = {'Accept': 'application/json,text/javascript,*/*;q=0.01','Connection': 'keep-alive','Cookie': '你的Cookie值,必須加上去','Host': 'www.lagou.com','Referer': 'https://www.lagou.com/jobs/list_Python?labelWords=&fromSearch=true&suginput=','User-Agent': str(UserAgent().random),
}def get_info(headers):# 3.for 循環(huán)請求(一共30頁)for i in range(1, 31):# 翻頁data = {'first': 'true','kd': 'Python爬蟲','pn': i}# 3.1 requests 發(fā)送請求req_result = requests.post(req_url, data=data, headers=headers)req_result.encoding = 'utf-8'print("第%d頁:"%i+str(req_result.status_code))# 3.2 獲取數(shù)據(jù)req_info = req_result.json()# 定位到我們所需數(shù)據(jù)位置req_info = req_info['content']['positionResult']['result']print(len(req_info))list_info = []# 3.3 取出具體數(shù)據(jù)for j in range(0, len(req_info)):salary = req_info[j]['salary']education = req_info[j]['education']workYear = req_info[j]['workYear']positionId = req_info[j]['positionId']list_one = [positionId,salary, education, workYear]list_info.append(list_one)print(list_info)# 存儲文件file_do(list_info)time.sleep(1.5)
- 運行結(jié)果:
2、根據(jù)獲取到的positionId
來訪問招聘信息詳細頁面
- 根據(jù)
positionId
還原訪問鏈接:
position_url = []
def read_csv():# 讀取文件內(nèi)容with open(r'G:\lagou_anv.csv', 'r', newline='') as file_test:# 讀文件reader = csv.reader(file_test)i = 0for row in reader:if i != 0 :# 根據(jù)positionID補全鏈接url_single = "https://www.lagou.com/jobs/%s.html"%row[0]position_url.append(url_single)i = i + 1print('一共有:'+str(i-1)+'個')print(position_url)
- 訪問招聘信息詳情頁面,獲取職位描述(崗位職責和崗位要求)并清理數(shù)據(jù):
def get_info():for position_url in position_urls:work_duty = ''work_requirement = ''response00 = get_response(position_url,headers = headers)time.sleep(1)content = response00.xpath('//*[@id="job_detail"]/dd[2]/div/p/text()')# 數(shù)據(jù)清理j = 0for i in range(len(content)):content[i] = content[i].replace('\xa0',' ')if content[i][0].isdigit():if j == 0:content[i] = content[i][2:].replace('、',' ')content[i] = re.sub('[;;.0-9。]','', content[i])work_duty = work_duty+content[i]+ '/'j = j + 1elif content[i][0] == '1' and not content[i][1].isdigit():breakelse:content[i] = content[i][2:].replace('、', ' ')content[i] = re.sub('[、;;.0-9。]','',content[i])work_duty = work_duty + content[i]+ '/'m = i# 崗位職責write_file(work_duty)print(work_duty)# 數(shù)據(jù)清理j = 0for i in range(m,len(content)):content[i] = content[i].replace('\xa0',' ')if content[i][0].isdigit():if j == 0:content[i] = content[i][2:].replace('、', ' ')content[i] = re.sub('[、;;.0-9。]', '', content[i])work_requirement = work_requirement + content[i] + '/'j = j + 1elif content[i][0] == '1' and not content[i][1].isdigit():# 控制范圍breakelse:content[i] = content[i][2:].replace('、', ' ')content[i] = re.sub('[、;;.0-9。]', '', content[i])work_requirement = work_requirement + content[i] + '/'# 崗位要求write_file2(work_requirement)print(work_requirement)print("-----------------------------")
- 運行結(jié)果:
3、四種圖可視化數(shù)據(jù)+數(shù)據(jù)清理方式
- 矩形樹圖:
# 1.矩形樹圖可視化學歷要求
from pyecharts import TreeMap
education_table = {}
for x in education:education_table[x] = education.count(x)
key = []
values = []
for k,v in education_table.items():key.append(k)values.append(v)data = []
for i in range(len(key)) :dict_01 = {"value": 40, "name": "我是A"}dict_01["value"] = values[i]dict_01["name"] = key[i]data.append(dict_01)
tree_map = TreeMap("矩形樹圖", width=1200, height=600)
tree_map.add("學歷要求",data, is_label_show=True, label_pos='inside')
- 玫瑰餅圖:
# 2.玫瑰餅圖可視化薪資
import re
import math
'''
# 薪水分類
parameter : str_01--字符串原格式:20k-30k
returned value : (a0+b0)/2 --- 解析后變成數(shù)字求中間值:25.0
'''
def assort_salary(str_01):reg_str01 = "(\d+)"res_01 = re.findall(reg_str01, str_01)if len(res_01) == 2:a0 = int(res_01[0])b0 = int(res_01[1])else :a0 = int(res_01[0])b0 = int(res_01[0])return (a0+b0)/2from pyecharts import Pie
salary_table = {}
for x in salary:salary_table[x] = salary.count(x)key = ['5k以下','5k-10k','10k-20k','20k-30k','30k-40k','40k以上']
a0,b0,c0,d0,e0,f0=[0,0,0,0,0,0]for k,v in salary_table.items():ave_salary = math.ceil(assort_salary(k))print(ave_salary)if ave_salary < 5:a0 = a0 + velif ave_salary in range(5,10):b0 = b0 +velif ave_salary in range(10,20):c0 = c0 +velif ave_salary in range(20,30):d0 = d0 +velif ave_salary in range(30,40):e0 = e0 +velse :f0 = f0 + v
values = [a0,b0,c0,d0,e0,f0]pie = Pie("薪資玫瑰圖", title_pos='center', width=900)
pie.add("salary",key,values,center=[40, 50],is_random=True,radius=[30, 75],rosetype="area",is_legend_show=False,is_label_show=True)
- 普通柱狀圖:
# 3.工作經(jīng)驗要求柱狀圖可視化
from pyecharts import Bar
workYear_table = {}
for x in workYear:workYear_table[x] = workYear.count(x)
key = []
values = []
for k,v in workYear_table.items():key.append(k)values.append(v)
bar = Bar("柱狀圖")
bar.add("workYear", key, values, is_stack=True,center= (40,60))
- 詞云圖:
import jieba
from pyecharts import WordCloud
import pandas as pd
import re,numpystopwords_path = 'H:\PyCoding\Lagou_analysis\stopwords.txt'
def read_txt():with open("G:\lagou\Content\\ywkf_requirement.txt",encoding='gbk') as file:text = file.read()content = text# 去除所有評論里多余的字符content = re.sub('[,,。. \r\n]', '', content)segment = jieba.lcut(content)words_df = pd.DataFrame({'segment': segment})# quoting=3 表示stopwords.txt里的內(nèi)容全部不引用stopwords = pd.read_csv(stopwords_path, index_col=False,quoting=3, sep="\t", names=['stopword'], encoding='utf-8')words_df = words_df[~words_df.segment.isin(stopwords.stopword)]words_stat = words_df.groupby(by=['segment'])['segment'].agg({"計數(shù)": numpy.size})words_stat = words_stat.reset_index().sort_values(by=["計數(shù)"], ascending=False)test = words_stat.head(200).valuescodes = [test[i][0] for i in range(0, len(test))]counts = [test[i][1] for i in range(0, len(test))]wordcloud = WordCloud(width=1300, height=620)wordcloud.add("必須技能", codes, counts, word_size_range=[20, 100])wordcloud.render("H:\PyCoding\Lagou_analysis\cloud_pit\ywkf_bxjn.html")
02
Python爬蟲崗位
關鍵詞解析:
- 學歷:本科
- 工作月薪:10k-30k
- 工作經(jīng)驗:1-5年
- 技能:分布式、多線程、框架、Scrapy、算法、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫
綜合:爬蟲這個崗位在學歷要求上比較放松,大多數(shù)為本科即可,比較適合想轉(zhuǎn)業(yè)的老哥小姐姐,學起來也不會特別難。而且薪資待遇上也還算比較優(yōu)厚,基本在10k以上。不過唯一對工作經(jīng)驗要求還是比較高的,有近一半的企業(yè)要求工作經(jīng)驗要達到3年以上。
03
Python數(shù)據(jù)分析崗位
關鍵詞解析:
- 學歷:本科(碩士比例有所增高)
- 工作月薪:10k-30k
- 工作經(jīng)驗:1-5年
- 技能:SAS、SPSS、Hadoop、Hive、數(shù)據(jù)庫、Excel、統(tǒng)計學、算法
綜合:數(shù)據(jù)分析這個崗位在學歷要求上比爬蟲要求稍微高一些,碩士比例有所提升,專業(yè)知識上有一定要求。薪資待遇上也還算比較優(yōu)厚,基本在10k以上,同時薪資在30k-40k的比例也有所上升。對工作經(jīng)驗要求還是比較高,大部分的企業(yè)要求工作經(jīng)驗要達到3年以上。
04
Python后端崗位
學歷要求
工作月薪
工作經(jīng)驗要求
后端技能
關鍵詞解析:
- 學歷:本科
- 工作月薪:10k-30k
- 工作經(jīng)驗:3-5年
- 技能:Flask、Django、Tornado、Linux、MySql、Redis、MongoDB、TCP/IP、數(shù)學(哈哈)
綜合:web后端這個崗位對學歷要求不高,但專業(yè)知識上有很大要求,得會Linux操作系統(tǒng)基本操作、三大主流數(shù)據(jù)庫的使用、以及三大基本web框架的使用等計算機相關知識,總體來說難道還是比較大。薪資待遇上也比較優(yōu)厚,基本在10k以上,同時薪資在30k-40k的比例也有近20%。對工作經(jīng)驗要求還是比較高,大部分的企業(yè)要求工作經(jīng)驗要達到3年以上。
05
Python數(shù)據(jù)挖掘崗位
關鍵詞解析:
- 學歷:本科(碩士)
- 工作月薪:20k-40k
- 工作經(jīng)驗:3-5年
- 技能:學歷(hhh)、Hadoop、Spark、MapReduce、Scala、Hive、聚類、決策樹、GBDT、算法
綜合:數(shù)據(jù)挖掘這個崗位,在學歷要求是最高的,雖然還是本科居多,但碩士比例明顯增加,還有公司要求博士學歷。在專業(yè)知識上也有很大要求,得會Linux操作系統(tǒng)基本操作、大數(shù)據(jù)框架Hadoop、Spark以及數(shù)據(jù)倉庫Hive的使用等計算機相關知識,總體來說難道還是比較大。薪資待遇上特別優(yōu)厚,基本在20k以上,薪資在30k-40k的比例也有近40%,對工作經(jīng)驗要求還是比較高,大部分的企業(yè)要求工作經(jīng)驗要達到3年以上。
06
Python全棧開發(fā)崗位
關鍵詞解析:
- 學歷:本科
- 工作月薪:10k-30k
- 工作經(jīng)驗:3-5年
- 技能:測試、運維、管理、開發(fā)、數(shù)據(jù)結(jié)構(gòu)、算法、接口、虛擬化、前端
綜合:全棧開發(fā)這個崗位什么都要懂些,什么都要學些,在學歷要求上并不太高,本科學歷即可,在專業(yè)知識上就不用說了,各個方面都得懂,還得理解運用。薪資待遇上也還可以,基本在10k以上,薪資在30k-40k的比例也有近20%。對工作經(jīng)驗要求還是比較高,大部分的企業(yè)要求工作經(jīng)驗要達到3年以上??傮w來說,就我個人而言會覺得全棧是個吃力多薪水少的崗位。
07
Python運維開發(fā)崗位
關鍵詞解析:
- 學歷:本科
- 工作月薪:10k-30k
- 工作經(jīng)驗:3-5年
- 技能:SVN、Git、Linux、框架、shell編程、mysql,redis,ansible、前端框架
綜合:運維開發(fā)這個崗位在學歷要求上不高,除開占一大半的本科,就是??屏?。工作經(jīng)驗上還是有一些要求,大多數(shù)要求有3-5年工作經(jīng)驗。從工資上看的話,不高也不低,20k以上也占有62%左右。要學習的東西也比較多,前端、后端、數(shù)據(jù)庫、操作系統(tǒng)等等。
08
Python高級開發(fā)工程師崗位
關鍵詞解析:
- 學歷:本科
- 工作月薪:20k左右
- 工作經(jīng)驗:3-5年
- 技能:WEB后端、MySQL、MongoDB、Redis、Linux系統(tǒng)(CentOS)、CI/CD 工具、GitHub
綜合:高級開發(fā)工程師這個崗位在學歷要求上與運維開發(fā)差不多,薪資也相差不大,22%以上的企業(yè)開出了30k以上的薪資,65%左右企業(yè)給出20k以上的薪資。當然,對工作經(jīng)驗上還是要求較高,有近一半的企業(yè)要求工作經(jīng)驗要達到3年以上。
09
Python大數(shù)據(jù)崗位
關鍵詞解析:
- 學歷:本科(碩士也占比很大)
- 工作月薪:30k以上
- 工作經(jīng)驗:3-5年
- 技能:前端開發(fā)、 MySQL、Mongo、Redis、Git
、Flask、Celery、Hadoop/HBase/Spark/Hive、Nginx
綜合:現(xiàn)在是大數(shù)據(jù)時代,大數(shù)據(jù)這個崗位也是相當火熱,在學歷要求上幾乎與運維開發(fā)一模一樣。當然,可能數(shù)據(jù)上出現(xiàn)了巧合,本科居多,工作經(jīng)驗上1-5年占據(jù)一大半,薪資上也基本上在20k以上,該崗位薪資在20k以上的企業(yè)占了55%左右。
10
Python機器學習崗位
關鍵詞解析:
- 學歷:本科(碩士也占比很大)
- 工作月薪:30k以上
- 工作經(jīng)驗:3-5年
- 技能:Machine Learning,Data Mining,Algorithm
研發(fā),算法,Linux,決策樹,TF,Spark+MLlib,Cafe
綜合:機器學習這個崗位在學歷要求上比較嚴格,雖然看起來是本科居多,但對于剛畢業(yè)或畢業(yè)不久的同學,如果只是個本科,應聘還是很有難度的。當然機器學習崗位薪資特高,60%在30k以上,近90%在20k以上,97%在10k以上。除開對學歷要求比較高外,對工作經(jīng)驗要求也比較高,有近一半的企業(yè)要求工作經(jīng)驗要達到3年以上。
11
Python架構(gòu)師崗位
關鍵詞解析:
- 學歷:本科
- 工作月薪:30k以上
- 工作經(jīng)驗:5-10年
- 技能:Flask,Django,MySQL,Redis,MongoDB,Hadoop,Hive,Spark,ElasticSearch,Pandas,Spark/MR,Kafka/rabitmq
綜合:架構(gòu)師這個崗位單從學歷上看不出什么來,但在薪資上幾乎與機器學習一樣,甚至比機器學習還要高,機器學習中月薪40k以上的占23.56%,架構(gòu)師中月薪40k以上的占30.67%。在學歷要求上比機器學習要略低,本科居多,但在工作經(jīng)驗上一半以上的企業(yè)要求工作經(jīng)驗在5-10年。在必要技能上也要求特別嚴格,比之前說過的全棧開發(fā)師有過之而無不及。
看著這月薪,我是超級想去了,你呢?
12
寫在最后
從上文可以看出,Python相關的各個崗位薪資還是不錯的,基本上所有崗位在10k以上的占90%,20k以上的也基本都能占60%左右。而且學歷上普遍來看,本科學歷占70%以上。唯一的是需要工作經(jīng)驗,一般得有個3-5年工作經(jīng)驗,也就是如果24歲本科畢業(yè),27歲就有很大機會拿到月薪20k以上。有沒有很心動?
關于Python技術(shù)儲備
學好 Python 不論是就業(yè)還是做副業(yè)賺錢都不錯,但要學會 Python 還是要有一個學習規(guī)劃。最后大家分享一份全套的 Python 學習資料,給那些想學習 Python 的小伙伴們一點幫助!
👉Python學習路線匯總👈
Python所有方向的技術(shù)點做的整理,形成各個領域的知識點匯總,它的用處就在于,你可以按照上面的知識點去找對應的學習資源,保證自己學得較為全面。(全套教程文末領取哈)
👉Python必備開發(fā)工具👈
溫馨提示:篇幅有限,已打包文件夾,獲取方式在:文末
👉Python學習視頻600合集👈
觀看零基礎學習視頻,看視頻學習是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎到深入,還是很容易入門的。
👉實戰(zhàn)案例👈
光學理論是沒用的,要學會跟著一起敲,要動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰(zhàn)案例來學習。
👉100道Python練習題👈
檢查學習結(jié)果。
👉面試刷題👈
資料領取
上述這份完整版的Python全套學習資料已經(jīng)上傳CSDN官方,朋友們?nèi)绻枰梢晕⑿艗呙柘路紺SDN官方認證二維碼輸入“領取資料” 即可領取