python招聘数据分析可视化系统+爬虫+7种薪资预测算法+Flask框架(源码)

2023-12-05

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业 毕业设计 项目实战6年之久,选择我们就是选择放心、选择安心毕业✌

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)

毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总

1、项目介绍

Flask框架 招聘数据爬虫可视化系统 薪资预测(7种预测模型)
爬虫 拉钩网站 MySQL数据库 echarts
本程序使用python编写,后端采用Flask框架,
采用Layui前端框架,数据库采用mysql设计,echarts进行数据可视化显示。

2、项目界面

(1)企业情况分析

在这里插入图片描述

(2)学历情况分析

在这里插入图片描述

(3)薪资情况分析

在这里插入图片描述

(4)招聘数据概况

在这里插入图片描述

(5)薪资预测

在这里插入图片描述

(6)数据采集页面
在这里插入图片描述

3、项目说明

本程序使用python编写,基于flask的轻量级web应用框架,数据库采用mysql设计,echarts进行数据可视化显示。数据爬取使用经典的requests、urllib包进行数据爬取,爬取的网站为拉勾网,拉勾网有较强的反爬机制,采用cookie的形式进行封装,再进行数据获取。获取的数据解析后存储到mysql数据库,然后使用pymysql包连接mysql将查询的数据展示到页面。
网页提供了如下功能:
1.首页
2.数据概况:可以通过学历和职位来选择查看满足条件的招聘信息,可以选择学历要求、输入职位来搜索更加精准的职位。
3.可视化:
薪资情况:通过选择学历来查看各种岗位对于不同学历的薪资可视化情况,以柱状图、饼图的形式来展示各种职位的薪资分布、所占比例。
企业情况:通过选择职位可以来查看这个职位的主要招聘城市,还可以大概查看一下这个职位的公司规模情况,以及每个职位在各个主要城市所占的比例饼图。
福利情况:通过数据可视化速览公司福利,基于词云进行构造,可以清晰看出所有公司给出的最核心的福利待遇。
学历情况:可以查看各个职位对学历以及工作经验的要求,以漏斗图、矩形树的形式进行可视化展示。
4.智能化
薪资预测:可以通过选择职位学历公司规模城市工作经验,以及选择不同的模型来,预测最低薪资。主要模型有:决策树、朴素贝叶斯、逻辑回归、神经网络、随机森林、支持向量机等。

4、部分代码


import jieba
import jieba.analyse
import numpy as np
from flask import Flask, request, jsonify,render_template
import pymysql
from flask_cors import *
import pickle

app = Flask(import_name=__name__, template_folder='UI_Pages',static_folder='UI_Pages/assets')
app.config['JSON_AS_ASCII'] = False
CORS(app, supports_credentials=True)

from flask.json import JSONEncoder as _JSONEncoder
@app.route('/')
def index():
    return render_template('page/template/login.html')
@app.route('/dashboard')
def dashboard():
    return render_template('index.html')
@app.route('/console')
def console():
    return render_template('page/console/console.html')


class JSONEncoder(_JSONEncoder):
    def default(self, o):
        import decimal
        if isinstance(o, decimal.Decimal):
            return float(o)
        super(JSONEncoder, self).default(o)
app.json_encoder = JSONEncoder

@app.route('/xueli',methods=['GET'])
def xueli():
    #打开数据库连接
    conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='zhaopin',
                           charset='utf8mb4')

    #创建一个游标对象cursor
    cursor = conn.cursor()
    #执行sql语句
    cursor.execute("SELECT DISTINCT(education) from demo")
    #获取所有记录列表
    result = cursor.fetchall()
    education = []
    education_data = []
    color_list = ['#459AF0', '#38C3B0', '#86CA5A', '#BFD44F', '	#90EE90']
    #获取到学历的五种情况:不限、大专、本科、硕士、博士
    for field in result:
        education.append(field[0])
    #获取到每种学历对应的个数
    for i in range(len(education)):
        cursor.execute("SELECT count(*) from demo where education = '" + education[i] + "'")
        count = cursor.fetchall()
        education_data.append({'value': count[0][0], 'itemStyle': {'color': color_list[i]}})
    cursor.execute("SELECT DISTINCT(workYear) from demo")
    result = cursor.fetchall()
    workYear = []
    workYear_data = []
    #获取到的几种工作经验
    for field in result:
        workYear.append(field[0])
    #获取到每种工作经验对应的个数
    for i in workYear:
        cursor.execute("SELECT count(*) from demo where workYear = '" + i + "'")
        count = cursor.fetchall()
        workYear_data.append({'value': count[0][0], 'name': i})
    cursor.close()
    return jsonify({"education":education, "education_data":education_data, "workYear_data":workYear_data})

@app.route('/xueli_first',methods=['GET'])
def xueli_first():
    #打开数据库连接
    conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='zhaopin',
                           charset='utf8mb4')
    #创建一个游标对象cursor
    cursor = conn.cursor()
    #执行sql语句
    cursor.execute("SELECT DISTINCT(education) from demo where city in ('北京', '上海', '广州', '深圳');")
    #获取所有记录列表
    result = cursor.fetchall()
    education = []
    education_data = []
    color_list = ['#459AF0', '#38C3B0', '#86CA5A', '#BFD44F', '	#90EE90']
    #获取到学历的五种情况:不限、大专、本科、硕士、博士
    for field in result:
        education.append(field[0])
    #获取到每种学历对应的个数
    for i in range(len(education)):
        cursor.execute("SELECT count(*) from demo where education = '" + education[i] + "' and city in ('北京', '上海', '广州', '深圳');")
        count = cursor.fetchall()
        education_data.append({'value': count[0][0], 'itemStyle': {'color': color_list[i]}})

    cursor.execute("SELECT DISTINCT(workYear) from demo where city in ('北京', '上海', '广州', '深圳');")
    result = cursor.fetchall()
    workYear = []
    workYear_data = []
    #获取到的几种工作经验
    for field in result:
        workYear.append(field[0])
    #获取到每种工作经验对应的个数
    for i in workYear:
        cursor.execute("SELECT count(*) from demo where workYear = '" + i + "' and city in ('北京', '上海', '广州', '深圳');")
        count = cursor.fetchall()
        workYear_data.append({'value': count[0][0], 'name': i})
    cursor.close()
    return jsonify({"education":education, "education_data":education_data, "workYear_data":workYear_data})

@app.route('/xueli_nfirst',methods=['GET'])
def xueli_nfirst():
    #打开数据库连接
    conn = pymysql.connect(host='localhost', user='root', password='123456', port=3306, db='zhaopin',
                           charset='utf8mb4')
    #创建一个游标对象cursor
    cursor = conn.cursor()
    #执行sql语句
    cursor.execute("SELECT DISTINCT(education) from demo where city in ('成都', '重庆', '杭州', '武汉', '西安', '天津', '苏州', '南京', '郑州', '长沙', '东莞' ,'沈阳', '青岛', '合肥', '佛山');")
    #获取所有记录列表
    result = cursor.fetchall()
    education = []
    education_data = []
    color_list = ['#459AF0', '#38C3B0', '#86CA5A', '#BFD44F', '	#90EE90']
    #获取到学历的五种情况:不限、大专、本科、硕士、博士
    for field in result:
        education.append(field[0])
    #获取到每种学历对应的个数
    for i in range(len(education)):
        cursor.execute("SELECT count(*) from demo where education = '" + education[i] + "' and city in ('成都', '重庆', '杭州', '武汉', '西安', '天津', '苏州', '南京', '郑州', '长沙', '东莞' ,'沈阳', '青岛', '合肥', '佛山');")
        count = cursor.fetchall()
        education_data.append({'value': count[0][0], 'itemStyle': {'color': color_list[i]}})

    cursor.execute("SELECT DISTINCT(workYear) from demo where city in ('成都', '重庆', '杭州', '武汉', '西安', '天津', '苏州', '南京', '郑州', '长沙', '东莞' ,'沈阳', '青岛', '合肥', '佛山');")
    result = cursor.fetchall()
    workYear = []
    workYear_data = []
    #获取到的几种工作经验
    for field in result:
        workYear.append(field[0])
    #获取到每种工作经验对应的个数
    for i in workYear:
        cursor.execute("SELECT count(*) from demo where workYear = '" + i + "' and city in ('成都', '重庆', '杭州', '武汉', '西安', '天津', '苏州', '南京', '郑州', '长沙', '东莞' ,'沈阳', '青岛', '合肥', '佛山');")
        count = cursor.fetchall()
        workYear_data.append({'value': count[0][0], 'name': i})
    cursor.close()
    return jsonify({"education":education, "education_data":education_data, "workYear_data":workYear_data})

@app.route('/xueli_second',methods=['GET'])

????✌ 感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业! ????✌

源码获取:

???? 由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。 ????

点赞、收藏、关注,不迷路, 下方查看 ???????? 获取联系方式 ????????

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python招聘数据分析可视化系统+爬虫+7种薪资预测算法+Flask框架(源码) 的相关文章

  • min() arg 是一个空序列

    我试图找到矩阵行中的最小元素 但有两个条件 1 它必须 gt 0 2 并且这个点一定不能被访问 is visited k is False 我下一步正在尝试做 min x for x in matr sum i if x gt 0 if i
  • pydev 断点不起作用

    我正在使用 python 2 7 2 sqlalchemy 0 7 unittest eclipse 3 7 2 和 pydev 2 4 开发一个项目 我在 python 文件 单元测 试文件 中设置断点 但它们被完全忽略 之前 在某些时候
  • 以 str.format 切片字符串

    我想实现以下目标str format x y 1234 5678 print str x 2 str y 2 我能够做到这一点的唯一方法是 print 0 1 format str x 2 str y 2 现在 这是一个例子 我真正拥有的是
  • Huggingface 变形金刚模块未被 anaconda 识别

    我正在使用 Anaconda python 3 7 Windows 10 我尝试通过安装变压器https huggingface co transformers https huggingface co transformers 在我的环境
  • 如何在python 2.7.8中将非英文字母的字典写入文件?

    这是一个简单的例子 test location 北京 country 中国 the values are Chinese 在文件 test log 中 location 北京 country 中国 在python 2 7 8中 当我需要输出
  • TCP打孔问题

    我尝试使用 Python 3 中概述的原则为防火墙编写一个基本的 TCP 打孔器本文 http www bford info pub net p2pnat index html 不过 我无法连接任何东西 这是代码 usr bin pytho
  • 将数字转换为整数列表[重复]

    这个问题在这里已经有答案了 我该如何写magic下面的函数 gt gt gt num 123 gt gt gt lst magic num gt gt gt gt gt gt print lst type lst 1 2 3
  • python - 将cookie添加到cookiejar

    如何在 python 中创建 cookie 并将其添加到 CookieJar 实例 我拥有 cookie 的所有信息 名称 值 域 路径等 但我不想通过 http 请求提取新的 cookie 我尝试了这个 但看起来 SimpleCookie
  • Django Rest Framework 序列化器中的聚合(和其他带注释的)字段

    我正在尝试找出添加带注释字段的最佳方法 例如将任何聚合 计算 字段添加到 DRF 模型 序列化器 我的用例只是一种情况 端点返回的字段未存储在数据库中 而是从数据库计算得出 让我们看下面的例子 模型 py class IceCreamCom
  • 如何使直方图列的宽度都相同

    我在操作直方图时遇到了一些麻烦 我有一个包含两列的 df 我将它们绘制为堆叠直方图 我将它们放入特定的垃圾箱中 请参阅下面的代码 但我想在最后制作一个大垃圾箱 4000 10000 但是 默认情况下 大垃圾箱的列宽很大 有没有办法让这个大垃
  • 模拟类:Mock() 还是 patch()?

    我在用mock http www voidspace org uk python mock index html使用Python 想知道这两种方法中哪一种更好 阅读 更Pythonic 方法一 只需创建一个模拟对象并使用它 代码如下 def
  • Python itertools groupby 中令人不安的奇怪行为/错误?

    我在用itertools groupby解析一个短的制表符分隔的文本文件 文本文件有几列 我想做的就是对具有特定值的所有条目进行分组x在特定的列中 下面的代码对名为的列执行此操作name2 寻找变量中的值x 我尝试使用以下方法来做到这一点c
  • pandas-更改重采样时间序列的开始和结束日期

    我有一个时间序列 我将其重新采样到这个数据框中df 我的数据是从6月6日到6月28日 它希望将数据从6月1日延长到6月30日 计数列仅在较长时间内具有 0 值 而我的实际值是从 6 日到 28 日 Out 123 count Timesta
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • 如何在 matplotlib 中第一个 x 轴的底部添加第二个 x 轴?

    我指的是已经提出的问题here https stackoverflow com questions 10514315 how to add a second x axis in matplotlib 在此示例中 用户通过将第二个轴添加到与标
  • 设置字符串中单词或字符数的限制

    假设我有一个字符串元素列表 wordlist hi what s up home diddle mc doo Oh wise master kakarot hello have a da 我希望列表中的每个元素最多包含 3 个单词或 20
  • PyMC3 和 Theano - 导入 pymc3 后,有效的 Theano 代码停止工作

    一些简单的 theano 代码可以完美运行 当我导入 pymc3 时停止工作 这里有一些片段可以重现错误 Initial Theano Code this works import theano tensor as tsr x tsr ds
  • 将 .parquet 编码为 io.Bytes

    目标 将 Parquet 文件上传到 MinIO 这需要将文件转换为字节 我已经能够做到这一点了 csv json and txt bytes data to csv encode utf 8 bytes json dumps self d
  • Python Web 编程的不同方法的优缺点

    我想使用 Python 编写一些服务器端脚本 但我对这样做的方法有点迷失了 它从 DIY CGI 方法开始 似乎以一些相当强大的框架结束 这些框架基本上可以自己完成所有工作 中间有很多东西 比如web py http webpy org P
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但

随机推荐