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

前言

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


2.png

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

爬取

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

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

from bs4 import BeautifulSoup
import requests
import pymongo

client = pymongo.MongoClient('localhost', 27017)
zhipin = client['zhipin']
zhipin_java = zhipin['zhipin_java']
zhipin_python = zhipin['zhipin_python']


headers = {
    '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',
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
}

total_page = 11


def get_info(param, data_table):
    '''
    根据招聘方向(java或python..)爬取信息存进数据库
    :param param: 招聘方向
    :param data_table: 数据库表明
    :return:
    '''
    for i in range(1, total_page):
        url = 'https://www.zhipin.com/c101280100/d_203-h_101280100/?query={0}&page={1}'.format(
            param, i)
        web_data = requests.get(url, headers=headers)
        soup = BeautifulSoup(web_data.content, 'lxml')
        for item in soup.select('#main > div > div.job-list > ul > li'):
            # 招聘要求
            job_title = item.select('.job-title')[0].text  # 岗位
            salary = item.select('.red')[0].text  # 薪资
            person_info = item.select('.info-primary p')[0].text  # 应聘要求
            # 获取公司信息
            company = item.select('.info-company h3 a')[0].text  # 公司
            company_info = item.select('.info-company p')[0].text  # 公司信息

            data = {
                'job_title': job_title,
                'salary': salary,
                'person_info': person_info,
                'company': company,
                'company_info': company_info,
            }
            # 插入数据库
            data_table.insert(data)
            print(data)
        print('*' * 100)
    print('\n' * 5)


if __name__ == '__main__':
    param_list = ['java', 'python']
    table_list = [zhipin_java, zhipin_python]
    for param, table in zip(param_list, table_list):
        get_info(param, table)


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

数据清洗

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

1.初始化变量

import pymongo
client = pymongo.MongoClient('localhost', 27017)
zhipin = client['zhipin']
zhipin_java = zhipin['zhipin_java']
zhipin_python = zhipin['zhipin_python']

from collections import Counter
from pyecharts import Bar,Line,Pie

2.获取地区分布情况

import re
def get_zone():
    ''' 获取地区'''
    zone_list = []
    real_list = []
    for item in zhipin_java.find():
        text = item['person_info'][3:6]
        zone_list.append(text)
    for i in zone_list:
        j = re.sub(r' \d-','',i)
        real_list.append(j)
        while '' in real_list:
            real_list.remove('')
    return real_list
zone = dict(Counter(get_zone()))

3.整理招聘数据

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

4.整理薪水数据

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

数据可视化

通过整理地区分布数据,利用pyecharts作图

bar = Bar("java和python岗位地区分布")
bar.add("java", list(key for key in zone.keys()), list(value for value in zone.values()),mark_line=['min', 'max'], is_toolbox_show = True,is_more_utils=True)
bar.add("python", list(key for key in py_zone.keys()), list(value for value in py_zone.values()),mark_line=['min', 'max'], is_toolbox_show = True,is_more_utils=True)
bar
java和python岗位地区分布.png

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

招聘最多的岗位

python方向招聘岗位
python岗位情况.png

python岗位占比

python岗位占比.png

占比前五位分别是:

  1. python工程师
  2. 数据分析师
  3. 运维工程师
  4. 大数据开发工程师
  5. 游戏AI算法工程师
java岗位对比
java岗位情况.png
java岗位占比.png

高级的工程师招聘的人数较少,大部分都是在招聘初中级工程师,真的是“三个臭皮匠也干不过一个诸葛亮胜过 (:”

python招聘公司
公司招聘python岗位情况.png
java招聘公司
公司招聘java岗位情况.png

最关心的钱途问题

最高薪水
最高薪水对比图.png

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

最低薪水
起步薪水对比图.png

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

两个岗位词云
java岗位词云.png
python岗位词云.png

关注公众号“Python绿洲 ” 回复 [ boss ]获取源码

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容