Python or Java?Boss直聘告诉你该如何选择
点击上方“程序人生”,选择“置顶公众号”
第一时间关注程序猿(媛)身边的故事
作者
Don Lex
已获原作者授权,如需转载,请联系原作者。
前言
“人生苦短,我用 Python”,Python 的经典 slogan 讲究争分夺秒,并且在 9月的TIOBE榜中拿下第 3 名宝座。
今天就试着在Boss直聘网站上爬取python和java的招聘信息,比较一下两个方向的发展前(钱)途,为本科生的就业方向给一个小小的建议。
爬取
在招聘网站上直接以”本科生”和”java”或”python”作为筛选条件,以广州为例:
(网站页面)
爬取招聘的大体信息,具体代码:
1frombs4importBeautifulSoup
2importrequests
3importpymongo
4
5client=pymongo.MongoClient('localhost',27017)
6zhipin=client['zhipin']
7zhipin_java=zhipin['zhipin_java']
8zhipin_python=zhipin['zhipin_python']
9
10
11headers={
12'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/60.0.3112.78Safari/537.36',
13'accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
14}
15
16total_page=11
17
18
19defget_info(param,data_table):
20'''
21根据招聘方向(java或python..)爬取信息存进数据库
22:paramparam:招聘方向
23:paramdata_table:数据库表明
24:return:
25'''
26foriinrange(1,total_page):
27url='https://www.zhipin.com/c101280100/d_203-h_101280100/?query={0}&page={1}'.format(
28param,i)
29web_data=requests.get(url,headers=headers)
30soup=BeautifulSoup(web_data.content,'lxml')
31foriteminsoup.select('#main>div>div.job-list>ul>li'):
32#招聘要求
33job_title=item.select('.job-title')[0].text#岗位
34salary=item.select('.red')[0].text#薪资
35person_info=item.select('.info-primaryp')[0].text#应聘要求
36#获取公司信息
37company=item.select('.info-companyh3a')[0].text#公司
38company_info=item.select('.info-companyp')[0].text#公司信息
39
40data={
41'job_title':job_title,
42'salary':salary,
43'person_info':person_info,
44'company':company,
45'company_info':company_info,
46}
47#插入数据库
48data_table.insert(data)
49print(data)
50print('*'*100)
51print('n'*5)
52
53
54if__name__=='__main__':
55param_list=['java','python']
56table_list=[zhipin_java,zhipin_python]
57forparam,tableinzip(param_list,table_list):
58get_info(param,table)
爬取的信息全部存在mongodb中,便于后面的分析处理。
数据清洗
在数据处理这里定义了几个方法,用来处理相应的内容。
1.初始变量
1importpymongo
2client=pymongo.MongoClient('localhost',27017)
3zhipin=client['zhipin']
4zhipin_java=zhipin['zhipin_java']
5zhipin_python=zhipin['zhipin_python']
6
7fromcollectionsimportCounter
8frompyechartsimportBar,Line,Pie
2.获取地区分布情况
1importre
2defget_zone():
3'''获取地区'''
4zone_list=[]
5real_list=[]
6foriteminzhipin_java.find():
7text=item['person_info'][3:6]
8zone_list.append(text)
9foriinzone_list:
10j=re.sub(r'd-','',i)
11real_list.append(j)
12while''inreal_list:
13real_list.remove('')
14returnreal_list
15zone=dict(Counter(get_zone()))
3.整理招聘数据
1defdel_key_1():
2'''删除招聘次数为1的岗位'''
3li=[]
4forkeyinjob_dict.keys():
5ifjob_dict[key]==1:
6li.append(key)
7foriinli:
8deljob_dict[i]
9print(job_dict)
4.整理薪水数据
1defget_salary():
2'''获取招聘的工资'''
3min_list=[]#起步工资
4max_list=[]#最高工资
5job_title=[]#岗位
6foriteminzhipin_java.find():
7job_title.append(item['job_title'])
8salary=item['salary']
9min_list.append(int(salary.split('-')[0][:-1]))
10max_list.append(int(salary.split('-')[1][:-1]))
11returnmin_list,max_list,job_title
数据可视化
通过整理地区分布数据,利用pyecharts作图。分别以下面4个方面进行比较:
地区分布
岗位情况
公司情况
薪水对比
一、不同区的招聘情况:
不难看出:越靠近城市中心的地区,招聘的岗位就越多,成功应聘的机会较高;番禺和天河区相差较大,其中天河区招python比java将近多8倍;番禺区java比python更加热门,受公司青睐;其他区相差不大
二、岗位情况
python岗位情况:
python岗位占比:
占比前五位分别是:
python工程师
数据分析师
运维工程师
大数据开发工程师
游戏AI算法工程师
java岗位情况:
高级的工程师招聘的人数较少,大部分都是在招聘初中级工程师,难道这就是传说中的“一个诸葛亮胜过三个臭皮匠 (:”
三、公司情况
python招聘公司情况:
java招聘公司情况:
四、qian途 对比
最高薪水对比:
看来python的地位不是吹的,最高薪水也大多数都比java的高;java最高薪水平均19.24K,最低3K,最高60k;python最高薪水平均21.16K,最低也是3k,最高50k,比java稍低一点。
最低薪水对比:
python起步薪水大多数都比java的高;java平均起步薪水11.42K,python平均起步薪水12.08K
最后用两个岗位的词云来看一下:
总结
看了这么多,该怎么选,你懂得。虽然有点以偏概全,但是我相信只要能够在一个语言上做到极致,相信你的qian途会是一片光明的!!另外希望秋招的同学能够找到一份好工作!!
点击文末「阅读原文」获取源码。
- The End -
「若你有原创文章想与大家分享,欢迎投稿。」
加编辑微信ID,备注#投稿#:
程序 丨 druidlost
小七 丨 duoshangshuang
上期精彩内容
查看评论 回复