Python or Java?Boss直聘告诉你该如何选择

                                                                          点击上方“程序人生”,选择“置顶公众号”

                                                                          第一时间关注程序猿(媛)身边的故事

 

640?wx_fmt=png

作者

Don Lex

已获原作者授权,如需转载,请联系原作者。

本文原文地址:https://blog.csdn.net/csdnsevenn/article/details/82634881

 

前言

 

   

“人生苦短,我用 Python”,Python 的经典 slogan 讲究争分夺秒,并且在 9月的TIOBE榜中拿下第 3 名宝座。

640?wx_fmt=png

今天就试着在Boss直聘网站上爬取python和java的招聘信息,比较一下两个方向的发展前(钱)途 ,为本科生的就业方向给一个小小的建议。

爬取

 

   

在招聘网站上直接以”本科生”和”java”或”python”作为筛选条件,以广州为例:

640?wx_fmt=png

(网站页面)

爬取招聘的大体信息,具体代码:

 1from bs4 import BeautifulSoup
 2import requests
 3import pymongo
 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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/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
19def get_info(param, data_table):
20    '''
21    根据招聘方向(java或python..)爬取信息存进数据库
22    :param param: 招聘方向
23    :param data_table: 数据库表明
24    :return:
25    '''
26    for i in range(1, total_page):
27        url = 'https://www.zhipin.com/c101280100/d_203-h_101280100/?query={0}&page={1}'.format(
28            param, i)
29        web_data = requests.get(url, headers=headers)
30        soup = BeautifulSoup(web_data.content, 'lxml')
31        for item in soup.select('#main > div > div.job-list > ul > li'):
32            # 招聘要求
33            job_title = item.select('.job-title')[0].text  # 岗位
34            salary = item.select('.red')[0].text  # 薪资
35            person_info = item.select('.info-primary p')[0].text  # 应聘要求
36            # 获取公司信息
37            company = item.select('.info-company h3 a')[0].text  # 公司
38            company_info = item.select('.info-company p')[0].text  # 公司信息
39
40            data = {
41                'job_title': job_title,
42                'salary': salary,
43                'person_info': person_info,
44                'company': company,
45                'company_info': company_info,
46            }
47            # 插入数据库
48            data_table.insert(data)
49            print(data)
50        print('*' * 100)
51    print('\n' * 5)
52
53
54if __name__ == '__main__':
55    param_list = ['java', 'python']
56    table_list = [zhipin_java, zhipin_python]
57    for param, table in zip(param_list, table_list):
58        get_info(param, table)

爬取的信息全部存在mongodb中,便于后面的分析处理。

数据清洗

 

   

在数据处理这里定义了几个方法,用来处理相应的内容。

1.初始变量

1import pymongo
2client = pymongo.MongoClient('localhost', 27017)
3zhipin = client['zhipin']
4zhipin_java = zhipin['zhipin_java']
5zhipin_python = zhipin['zhipin_python']
6
7from collections import Counter
8from pyecharts import Bar,Line,Pie

2.获取地区分布情况

 1import re
 2def get_zone():
 3    ''' 获取地区'''
 4    zone_list = []
 5    real_list = []
 6    for item in zhipin_java.find():
 7        text = item['person_info'][3:6]
 8        zone_list.append(text)
 9    for i in zone_list:
10        j = re.sub(r' \d-','',i)
11        real_list.append(j)
12        while '' in real_list:
13            real_list.remove('')
14    return real_list
15zone = dict(Counter(get_zone()))

3.整理招聘数据

1def del_key_1():
2    '''删除招聘次数为1的岗位'''
3    li = []
4    for key in job_dict.keys():
5        if job_dict[key] == 1:
6            li.append(key)
7    for i in li:
8        del job_dict[i]
9    print(job_dict)

4.整理薪水数据

 1def get_salary():
 2    '''获取招聘的工资'''
 3    min_list = [] #起步工资
 4    max_list = [] #最高工资
 5    job_title = [] #岗位
 6    for item in zhipin_java.find():
 7        job_title.append(item['job_title'])
 8        salary = item['salary']
 9        min_list.append(int(salary.split('-')[0][:-1]))
10        max_list.append(int(salary.split('-')[1][:-1]))
11    return min_list,max_list,job_title

 

数据可视化

 

   

通过整理地区分布数据,利用pyecharts作图。分别以下面4个方面进行比较:

  1. 地区分布

  2. 岗位情况

  3. 公司情况

  4. 薪水对比

一、不同区的招聘情况:

640?wx_fmt=png

不难看出:越靠近城市中心的地区,招聘的岗位就越多,成功应聘的机会较高;番禺和天河区相差较大,其中天河区招python比java将近多8倍;番禺区java比python更加热门,受公司青睐;其他区相差不大

二、岗位情况

python岗位情况:

640?wx_fmt=png

python岗位占比:

640?wx_fmt=png

占比前五位分别是:

  1. python工程师

  2. 数据分析师

  3. 运维工程师

  4. 大数据开发工程师

  5. 游戏AI算法工程师

java岗位情况:

640?wx_fmt=png

 

640?wx_fmt=png

高级的工程师招聘的人数较少,大部分都是在招聘初中级工程师,难道这就是传说中的“一个诸葛亮胜过三个臭皮匠 (:”

三、公司情况

python招聘公司情况:

640?wx_fmt=png

java招聘公司情况:

640?wx_fmt=png

四、qian途 对比

最高薪水对比:

640?wx_fmt=png

看来python的地位不是吹的,最高薪水也大多数都比java的高;java最高薪水平均19.24K,最低3K,最高60k;python最高薪水平均21.16K,最低也是3k,最高50k,比java稍低一点。

最低薪水对比:

640?wx_fmt=png


python起步薪水大多数都比java的高;java平均起步薪水11.42K,python平均起步薪水12.08K

最后用两个岗位的词云来看一下:

640?wx_fmt=png

 

640?wx_fmt=png

 

总结

 

   

看了这么多,该怎么选,你懂得 640?。虽然有点以偏概全,但是我相信只要能够在一个语言上做到极致,相信你的qian途会是一片光明的!!另外希望秋招的同学能够找到一份好工作!!

点击文末「阅读原文」获取源码。

 

                                                                                     - The End -

                                                              「若你有原创文章想与大家分享,欢迎投稿。」

                                                                           加编辑微信ID,备注#投稿#:

                                                                                    程序 丨 druidlost  

                                                                               小七 丨 duoshangshuang

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值