BS1066-基于大数据爬虫实现互联网研发岗位数据分析平台

本基于大数据爬虫实现互联网研发岗位数据分析平台,系统主要采用java,互联网爬虫技术,动态图表echarts,springboot,mysql,mybatisplus,岗位推荐算法,实现基于互联网招聘岗位实现针对用户的岗位推荐,
系统提供招聘岗位网站前台,系统岗位数据分析可视化平台展示等功能。
系统招聘网站主要包含:用户登录注册,招聘岗位推荐,岗位推荐列表,用户建立,我的投递,用户浏览,招聘岗位分类,个人中心,招聘岗位详情等模块
系统可视化分析展示平台主要包含:岗位竞争力分析,岗位薪资分析,岗位分析报告,岗位技能分析,岗位数量分析,岗位地图分布等等。

原文地址

一、程序设计

本基于大数据爬虫实现互联网研发岗位数据分析平台,主要内容涉及:

主要功能模块:用户登录注册,招聘岗位推荐,岗位推荐列表,用户建立,我的投递,用户浏览,招聘岗位分类,个人中心,招聘岗位详情等模块。
主要包含技术:java,JSOUP,httpClient,数据处理,数据分析,echarts,springboot,mysql,mybatis,javascript,数据分析存储技术,推荐计算算法等

二、效果实现

演示视频

https://www.bilibili.com/video/BV19m4y177Ti/

系统首页

BS1066-基于大数据爬虫实现互联网研发岗位数据分析平台_第1张图片

岗位检索

BS1066-基于大数据爬虫实现互联网研发岗位数据分析平台_第2张图片

采集数据

BS1066-基于大数据爬虫实现互联网研发岗位数据分析平台_第3张图片

数据可视化

BS1066-基于大数据爬虫实现互联网研发岗位数据分析平台_第4张图片

程序报告

BS1066-基于大数据爬虫实现互联网研发岗位数据分析平台_第5张图片

三、代码实现

系统招聘岗位管理主要采用前后端分离模式,针对招聘岗位数据查询封装成JSON格式,完成数据下发至系统界面端渲染,系统界面端针对JSON解析后采用javascript完成页面展示。

def wish_data(wages_old):

    """
    数据清洗规则:
    分为元/天,千(以上/下)/月,万(以上/下)/月,万(以上/下)/年
    若数据是一个区间的,则求其平均值,最后的值统一单位为元/月
    """

    if '元/天' in wages_old:
        if '-' in wages_old.split('元')[0]:
            wages1 = wages_old.split('元')[0].split('-')[0]
            wages2 = wages_old.split('元')[0].split('-')[1]
            wages_new = (float(wages2) + float(wages1)) / 2 * 30
        else:
            wages_new = float(wages_old.split('元')[0]) * 30
        return wages_new

    elif '千/月' in wages_old or '千以下/月' in wages_old or '千以上/月' in wages_old:
        if '-' in wages_old.split('千')[0]:
            wages1 = wages_old.split('千')[0].split('-')[0]
            wages2 = wages_old.split('千')[0].split('-')[1]
            wages_new = (float(wages2) + float(wages1)) / 2 * 1000
        else:
            wages_new = float(wages_old.split('千')[0]) * 1000
        return wages_new

    elif '万/月' in wages_old or '万以下/月' in wages_old or '万以上/月' in wages_old:
        if '-' in wages_old.split('万')[0]:
            wages1 = wages_old.split('万')[0].split('-')[0]
            wages2 = wages_old.split('万')[0].split('-')[1]
            wages_new = (float(wages2) + float(wages1)) / 2 * 10000
        else:
            wages_new = float(wages_old.split('万')[0]) * 10000
        return wages_new

    elif '万/年' in wages_old or '万以下/年' in wages_old or '万以上/年' in wages_old:
        if '-' in wages_old.split('万')[0]:
            wages1 = wages_old.split('万')[0].split('-')[0]
            wages2 = wages_old.split('万')[0].split('-')[1]
            wages_new = (float(wages2) + float(wages1)) / 2 * 10000 / 12
        else:
            wages_new = float(wages_old.split('万')[0]) * 10000 / 12
        return wages_new


def wages_experience_chart(data):
    # 根据经验分类,求不同经验对应的平均薪资
    wages_experience = data.groupby('经验').mean()

    # 获取经验和薪资的值,将其作为画图的 x 和 y 数据
    w = wages_experience['工资'].index.values
    e = wages_experience['工资'].values

    # 按照经验对数据重新进行排序,薪资转为 int 类型(也可以直接在前面对 DataFrame 按照薪资大小排序)
    wages = [w[6], w[1], w[2], w[3], w[4], w[5], w[0]]
    experience = [int(e[6]), int(e[1]), int(e[2]), int(e[3]), int(e[4]), int(e[5]), int(e[0])]

    # 绘制柱状图
    plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    plt.figure(figsize=(9, 6))
    x = wages
    y = experience
    color = ['#E41A1C', '#377EB8', '#4DAF4A', '#984EA3', '#FF7F00', '#FFFF33', '#A65628']
    plt.bar(x, y, color=color)
    for a, b in zip(x, y):
        plt.text(a, b, b, ha='center', va='bottom')
    plt.title('Python 相关职位经验与平均薪资关系', fontsize=13)
    plt.xlabel('经验', fontsize=13)
    plt.ylabel('平均薪资(元 / 月)', fontsize=13)
    plt.savefig('wages_experience_chart.png')
    plt.show()


def wages_education_chart(data):
    # 根据学历分类,求不同学历对应的平均薪资
    wages_education = data.groupby('学历').mean()

    # 获取学历和薪资的值,将其作为画图的 x 和 y 数据
    wages = wages_education['工资'].index.values
    education = [int(i) for i in wages_education['工资'].values]

    # 绘制柱状图
    plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    plt.figure(figsize=(9, 6))
    x = wages
    y = education
    color = ['#E41A1C', '#377EB8', '#4DAF4A']
    plt.bar(x, y, color=color)
    for a, b in zip(x, y):
        plt.text(a, b, b, ha='center', va='bottom')
    plt.title('Python 相关职位学历与平均薪资关系', fontsize=13)
    plt.xlabel('学历', fontsize=13)
    plt.ylabel('平均薪资(元 / 月)', fontsize=13)
    plt.savefig('wages_education_chart.png')
    plt.show()

你可能感兴趣的:(程序设计,大数据,爬虫,数据分析)