博主介绍:✌全网粉丝50W+,前互联网大厂软件研发、集结硕博英豪成立软件开发工作室,专注于计算机相关专业项目实战6年之久,累计开发项目作品上万套。凭借丰富的经验与专业实力,已帮助成千上万的学生顺利毕业,选择我们,就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅
2、大数据、计算机专业选题(Python/Java/大数据/深度学习/机器学习)(建议收藏)✅
1、项目介绍
- 技术栈:Python招聘数据、薪资预测、Flask框架、Echarts可视化大屏、Vue前端、智联招聘
- 这个项目的研究背景:当前招聘市场中,普通用户与残疾人用户(特殊用户)的招聘需求存在差异,但传统招聘系统缺乏差异化数据展示,两类用户常面临数据源混淆、适配岗位筛选难的问题。同时,招聘数据分散在智联招聘等平台,实时获取与分析效率低,且缺乏薪资预测工具辅助用户决策,这些痛点制约了不同类型用户的招聘体验与求职效率。
- 这个项目的研究意义:技术层面,通过Python爬虫获取智联招聘数据,借助Flask框架实现数据交互,Echarts可视化大屏直观呈现数据,Vue前端保障界面友好性,解决传统系统技术短板;用户层面,为管理员、普通用户、特殊用户三类角色提供差异化功能,普通用户与特殊用户分别获取专属招聘数据,搭配薪资预测与职位推荐,提升求职精准度;行业层面,关注残疾人用户就业需求,推动招聘系统向"差异化、人性化"升级,为招聘市场细分服务提供参考,具备实际应用价值。
2、项目界面
(1)公司信息统计分析

(2)数据概览

(3)动态爬取数据

(4)薪资预测

(5)数据爬取日志

3、项目说明
本项目是基于Python技术栈开发的实时招聘信息分析系统,整合Flask框架、Vue前端、Echarts可视化大屏及Python爬虫技术,核心实现智联招聘数据的实时获取、差异化展示(普通用户与特殊用户)、多维度分析及薪资预测功能,旨在解决不同类型用户招聘数据混淆、求职效率低的问题。系统支持三类用户角色(管理员、普通用户、特殊用户,特殊用户指残疾人用户),所有用户均具备登录注册基础功能,可浏览/修改个人信息及修改登录密码,保障账户安全性与个性化。管理员作为核心管理角色,除基础功能外,还可浏览普通用户与特殊用户的招聘数据概览、动态获取51job数据、查看数据爬取日志,并对系统用户进行管理,确保数据与用户的有序管控;普通用户可查看专属招聘职位数据、动态获取51job数据、查看爬取日志,同时通过Echarts柱状图查看城市招聘分布、用词云图分析公司福利、按行业/学历/工作地点统计薪资占比、从经验与学历维度分析行业招聘要求、查看公司属性/性质/规模分析结果,还能基于个人信息获取职位推荐、通过工资中位数实现薪资预测,全方位辅助求职决策;特殊用户则可获取适配自身的专属招聘数据,解决传统系统中适配岗位筛选难的问题。技术流程上,系统通过Python爬虫实时抓取智联招聘数据,按普通用户与特殊用户需求分类存储,后端经Flask框架处理数据逻辑并提供接口,前端依托Vue构建交互界面,结合Echarts可视化大屏呈现公司信息统计、数据概览等分析结果,形成"数据抓取-分类处理-多端展示-辅助决策"的完整闭环。整体而言,系统既满足不同角色的差异化功能需求,又通过实时数据与可视化分析提升招聘信息利用效率,尤其关注残疾人用户的就业需求,具备较强的实用性与社会价值。
4、核心代码
python
from flask import Blueprint,request,jsonify
from data.mysqlHelper import get_a_conn
from data.data_zhilian import getZhilian
index_api = Blueprint('index_api', __name__)
# 51job城市字典表
@index_api.route('/getCityDict', methods=['POST'])
def getCityDict():
try:
mysql = get_a_conn()
sql = "select city_code value,city_name label from tbl_city"
res = mysql.fetchall(sql)
return jsonify({'code': '200', 'info': res})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 取消收藏
@index_api.route('/delCollect', methods=['POST'])
def delCollect():
try:
user_id = request.json.get('user_id')
job_id = int(request.json.get('job_id'))
mysql = get_a_conn()
sql = "delete from tbl_user_job where user_id = '%s' and job_id = '%s'" % (user_id, job_id)
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '取消成功'})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 收藏
@index_api.route('/collect', methods=['POST'])
def collect():
try:
user_id = request.json.get('user_id')
job_id = int(request.json.get('job_id'))
mysql = get_a_conn()
sql = "insert into tbl_user_job (user_id,job_id) values (%s,%s) " % (user_id, job_id)
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '新增成功'})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 获取日志
@index_api.route('/getLogs', methods=['POST'])
def getLogs():
pageno = int(request.json.get('pageNo', 1))
pagesize = int(request.json.get('pageSize', 10))
userRole = request.json.get('userRole')
userName = request.json.get('userName')
mysql = get_a_conn()
sql = "SELECT * FROM tbl_data_log where 1=1 "
if userRole != None and userRole != '' and userRole != '1':
sql += "and user_name = '" + str(userName) + "'"
sql += "ORDER BY end_time desc limit %s,%s" % ((pageno - 1) * pagesize, pagesize)
result = mysql.fetchall(sql)
sql_count = 'select count(1) num from tbl_data_log where 1=1 '
if userRole != None and userRole != '' and userRole != '1':
sql_count += "and user_name = '" + str(userName) + "'"
count = mysql.fetchall(sql_count)
total = count[0].get('num')
return jsonify({'code': '200', 'info': result, 'pageno': pageno, 'pagesize': pagesize, 'total': total})
# 爬取数据
@index_api.route('/getJobData', methods=['POST'])
def getJobs():
username = request.json.get('username')
search = request.json.get('search', '+')
pagesize = int(request.json.get('pageSize', 2))
city_id = request.json.get('city_id', 358)
if search == '':
search = ''
if city_id == '':
city_id = 358
result = getZhilian(username,city_id, search, pagesize)
return jsonify({'code': '200', 'info': result})
# 用户新增
@index_api.route('/addUser', methods=['POST'])
def addUser():
try:
account = request.json.get('account')
name = request.json.get('name')
email = request.json.get('email')
phone = request.json.get('phone')
role = request.json.get('role')
remarks = request.json.get('remarks')
mysql = get_a_conn()
sql = "insert into tbl_user (name,account,pwd,email,phone,login_flag,remarks,role) values ('%s','%s','%s','%s','%s','%s','%s','%s') " % (
name, account, '123456', email, phone, '1', remarks, role)
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '新增成功'})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 用户信息
@index_api.route('/userInfo', methods=['POST'])
def userInfo():
account = request.form.get("account")
mysql = get_a_conn()
sql = "SELECT * FROM tbl_user where 1=1 "
if account != None and account != '':
sql += " and account = '"
sql += account
sql += "'"
result = mysql.fetchall(sql)
sql_count = 'select count(1) num from tbl_user'
count = mysql.fetchall(sql_count)
total = count[0].get('num')
return jsonify({'code': '200', 'info': result})
# 用户编辑
@index_api.route('/editUser', methods=['POST'])
def editUser():
try:
print(request.form)
print('=============')
print(request.json)
id = request.json.get('id')
name = request.json.get('name')
email = request.json.get('email')
phone = request.json.get('phone')
role = request.json.get('role')
remarks = request.json.get('remarks')
icon = request.json.get('img')
location = '' if (request.json.get('location') == 'None' or request.json.get('location') == None) else request.json.get('location')
exp = '' if request.json.get('exp') == 'None' else request.json.get('exp')
deu = '' if request.json.get('deu') == 'None' else request.json.get('deu')
major = '' if request.json.get('major') == 'None' else request.json.get('major')
mysql = get_a_conn()
sql = "update tbl_user set name = '%s',email='%s',phone='%s',role='%s',remarks='%s',location='%s',exp='%s',deu='%s',major='%s',img='%s' where id = '%s'" % (
name, email, phone, role, remarks,location,exp,deu,major, icon,id)
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '修改成功'})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 用户停用
@index_api.route('/stopUser', methods=['POST'])
def stopUser():
try:
id = request.form.get('id')
if (id == None or id == '' or id == 'undefined'):
return jsonify({'code': '500', 'info': 'id不存在,启用失败'})
mysql = get_a_conn()
sql = "update tbl_user set login_flag = '0' where id = '%s'" % id
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '停用成功'})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 重置密码
@index_api.route('/chongzhi', methods=['POST'])
def chongzhi():
try:
id = request.form.get('id')
if (id == None or id == '' or id == 'undefined'):
return jsonify({'code': '500', 'info': 'id不存在,重置失败'})
mysql = get_a_conn()
sql = "update tbl_user set pwd = '123456' where id = '%s'" % id
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '重置成功,密码为 123456'})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 用户启用
@index_api.route('/startUser', methods=['POST'])
def startUser():
try:
id = request.form.get('id')
if (id == None or id == '' or id == 'undefined'):
return jsonify({'code': '500', 'info': 'id不存在,启用失败'})
mysql = get_a_conn()
sql = "update tbl_user set login_flag = '1' where id = '%s'" % id
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '启用成功'})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 用户删除
@index_api.route('/delUser', methods=['POST'])
def delUser():
try:
id = request.form.get('id')
if (id == None or id == '' or id == 'undefined'):
return jsonify({'code': '500', 'info': 'id不存在,删除失败'})
mysql = get_a_conn()
sql = "delete from tbl_user where id = '%s'" % id
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '删除成功'})
except Exception as e:
return jsonify({'code': '500', 'info': '删除失败' + e})
# 用户列表
@index_api.route('/getUsers', methods=['POST'])
def getUsers():
pageno = int(request.form.get('pageNo', 1))
pagesize = int(request.form.get('pageSize', 10))
name = request.form.get("name")
phone = request.form.get("phone")
mysql = get_a_conn()
sql = "SELECT * FROM tbl_user where 1=1 "
if name != None and name != '':
sql += " and name like '%"
sql += name
sql += "%'"
if phone != None and phone != '':
sql += " and phone = '%s'" % (phone)
sql += " ORDER BY id asc limit %s,%s" % ((pageno - 1) * pagesize, pagesize)
result = mysql.fetchall(sql)
sql_count = 'select count(1) num from tbl_user'
count = mysql.fetchall(sql_count)
total = count[0].get('num')
return jsonify({'code': '200', 'info': result, 'pageno': pageno, 'pagesize': pagesize, 'total': total})
# 修改密码
@index_api.route('/changePwd', methods=['POST'])
def changePwd():
account = request.form.get('account', None)
oldPwd = request.form.get('oldPwd', None)
newPwd = request.form.get('newPwd', None)
mysql = get_a_conn()
sql = """ SELECT * FROM tbl_user t where t.account = '%s' and t.pwd = '%s' """ % (account, oldPwd)
result = mysql.fetchall(sql)
if (result):
sql = "update tbl_user set pwd = '%s' WHERE account = '%s'" % (newPwd, account)
result1 = mysql.fetchall(sql)
print(result1)
return jsonify({'code': '200', 'info': '修改成功'})
else:
return jsonify({'code': '500', 'info': '旧密码输入不正确'})
# 注册
@index_api.route('/reg', methods=['POST'])
def reg():
try:
account = request.form.get('account', None)
pwd = request.form.get('pwd', None)
name = request.form.get('name', None)
role = request.form.get('role', None)
# 账号是否存在校验
mysql = get_a_conn()
sql_username = 'select count(1) count from tbl_user t where t.account = "%s"' % (account)
result = mysql.fetchall(sql_username)
if (result[0].get('count') > 0):
return jsonify({'code': '500', 'info': '该账号已注册'})
else:
sql = "INSERT into tbl_user (name,account,pwd,login_flag,role) values ('%s','%s','%s','%s','%s')" % (
name, account, pwd, '1', role)
mysql = get_a_conn()
mysql.fetchall(sql)
return jsonify({'code': '200', 'info': '注册成功,请登录'})
except Exception as e:
return jsonify({'code': '500', 'info': e})
# 登录
@index_api.route('/login', methods=['POST'])
def login():
account = request.form.get('account', None)
pwd = request.form.get('pwd', None)
mysql = get_a_conn()
sql = """ SELECT * FROM tbl_user t where t.account = '%s' and t.pwd = '%s' """ % (account, pwd)
result = mysql.fetchall(sql)
if (result):
return {'code': '200', 'info': '%s登录成功' % account, 'session':result}
else:
return {'code': '500', 'info': '%s登录失败' % account}
🍅✌**感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目编程以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!**🍅✌
5、源码获取方式
🍅**由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。**🍅
点赞、收藏、关注,不迷路,下方查看 👇🏻获取联系方式👇🏻